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... | |
afc8b9b1 PP |
35 | |
36 | ||
37 | class ChercheurRappelManager(models.Manager): | |
38 | def get_query_set(self): | |
39 | last_year = datetime.datetime.today() - datetime.timedelta(days=365) | |
40 | return super(ChercheurRappelManager, self).get_query_set().filter(user__is_active=True).filter(user__last_login__lt=last_year) | |
41 | ||
42 | ||
43 | class ChercheurRappel(Chercheur): | |
44 | ||
45 | objects = ChercheurRappelManager() | |
46 | ||
47 | class Meta: | |
48 | proxy = True | |
49 | verbose_name = 'chercheur (rappel)' | |
50 | verbose_name_plural = 'chercheur (rappel)' | |
51 | ||
52 | def last_login(self): | |
53 | return self.user.last_login |