Commit | Line | Data |
---|---|---|
c4312cce PP |
1 | # -*- coding: utf-8 -*- |
2 | ||
afc8b9b1 | 3 | import datetime |
c4312cce | 4 | |
afc8b9b1 | 5 | from django.db import models |
c4312cce PP |
6 | from django.contrib.auth.models import User |
7 | ||
afc8b9b1 PP |
8 | from chercheurs.models import Chercheur |
9 | ||
c4312cce PP |
10 | |
11 | class Rappel(models.Model): | |
12 | date_creation = models.DateTimeField("date de création", auto_now_add=True) | |
13 | user_creation = models.ForeignKey(User, verbose_name="utilisateur création") | |
14 | date_cible = models.DateField("date cible", help_text="Date antérieure ciblée pour cerner les cas à rappeler") | |
15 | date_limite = models.DateField("date limite", help_text="Date limite à communiquer dans le rappel avant laquelle le destinataire doit poser une action") | |
16 | sujet = models.CharField("sujet", max_length=255) | |
17 | contenu = models.TextField("contenu") | |
18 | ||
19 | def __unicode__(self): | |
20 | return self.sujet | |
21 | ||
22 | ||
23 | class RappelUser(models.Model): | |
24 | rappel = models.ForeignKey(Rappel, verbose_name="rappel") | |
25 | user = models.ForeignKey(User, verbose_name="utilisateur") | |
26 | date_envoi = models.DateTimeField("date de l'envoi", auto_now_add=True) | |
27 | ||
28 | def __unicode__(self): | |
29 | return "%s: %s" % (self.rappel.sujet, self.user) | |
30 | ||
31 | def save(self, *args, **kwargs): | |
32 | super(RappelUser, self).save(*args, **kwargs) | |
33 | ||
34 | # Envoi du courriel... | |
da30702c | 35 | print u"Envoi du courriel à %s" % self.user.email |
afc8b9b1 PP |
36 | |
37 | ||
f7eeb1cb PP |
38 | class RappelModele(models.Model): |
39 | nom = models.CharField("nom", max_length=100) | |
40 | sujet = models.CharField("sujet", max_length=255) | |
41 | contenu = models.TextField("contenu") | |
42 | ||
43 | def __unicode__(self): | |
44 | return self.nom | |
45 | ||
46 | ||
afc8b9b1 PP |
47 | class ChercheurRappelManager(models.Manager): |
48 | def get_query_set(self): | |
49 | last_year = datetime.datetime.today() - datetime.timedelta(days=365) | |
50 | return super(ChercheurRappelManager, self).get_query_set().filter(user__is_active=True).filter(user__last_login__lt=last_year) | |
51 | ||
52 | ||
53 | class ChercheurRappel(Chercheur): | |
54 | ||
55 | objects = ChercheurRappelManager() | |
56 | ||
57 | class Meta: | |
58 | proxy = True | |
59 | verbose_name = 'chercheur (rappel)' | |
60 | verbose_name_plural = 'chercheur (rappel)' | |
61 | ||
62 | def last_login(self): | |
63 | return self.user.last_login | |
535de3be | 64 | last_login.short_description = "Dernière connexion" |