Rappel: Utilisation du modele défini dans l'admin
[auf_savoirs_en_partage_django.git] / auf_savoirs_en_partage / rappels / models.py
CommitLineData
c4312cce
PP
1# -*- coding: utf-8 -*-
2
afc8b9b1 3import datetime
c4312cce 4
afc8b9b1 5from django.db import models
c4312cce
PP
6from django.contrib.auth.models import User
7
afc8b9b1
PP
8from chercheurs.models import Chercheur
9
c4312cce
PP
10
11class 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
23class 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
38class 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
47class 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
53class 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"