6 from django.db import models
8 from django.template import loader, Context
9 from django.conf import settings
11 from django.utils.translation import ugettext as _
12 from django.core.mail import send_mail
13 # rajout d'un commentaire inutile
15 class Subscriber(models.Model) :
16 email = models.EmailField(unique = True) # TODO : informer si déjà inscrit ? Que faire dans ce cas.
17 inscription_date = models.DateField(auto_now_add=True)
18 is_validated = models.NullBooleanField() # Au click sur le lien de confirmation. Null si erreur à l'envoi au souscripteur.
19 is_registered = models.NullBooleanField() # À l'inscription après la confirmation Null si erreur à l'envoi à mailman.
20 password = models.CharField(max_length=100) # sha1
22 def __unicode__(self) :
25 def save(self, *args, **kwargs):
26 super(Subscriber, self).save(*args, **kwargs)
27 if self.is_validated is None:
28 self.send_confirmation_email()
30 def send_confirmation_email(self):
31 self.password = hashlib.sha1(str(random.random())).hexdigest()
32 confirm_subject = loader.get_template('newsletter/confirmation_email_subject.txt')
33 confirm_body = loader.get_template('newsletter/confirmation_email_body.txt')
35 send_mail(confirm_subject.render(context).strip(), confirm_body.render(context),
36 settings.NEWSLETTER_SENDER, [self.email])
37 self.is_validated = False