models.py 1.4 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding: utf8 -*-

from smtplib import SMTPException
import socket

from django.db import models
from django.core.mail import send_mail


class Subscriber(models.Model) :
    email = models.EmailField(unique = True)   # TODO : informer si déjà inscrit ? Que faire dans ce cas.
    inscription_date = models.DateField(auto_now_add=True)
    is_validated = models.NullBooleanField() # Au click sur le lien de confirmation. Null si erreur à l'envoi au souscripteur.
    is_registered = models.NullBooleanField() # À l'inscription après la confirmation Null si erreur à l'envoi à mailman.
    password = models.CharField(max_length=100) # sh1
    def __unicode__(self) :
        return self.email


    def save(self, *args, **kwargs):
        super(Subscriber, self).save(*args, **kwargs)
        self.send_confirmation_email()

    def send_confirmation_email(self):
        subject = 'confirmation de votre inscription'
        message = 'blabla, veuillez cliquer sur le lien suivant http://127.0.0.1:8000/newsletter%s' % self.password
        sender = 'no-reply@panik.org'
        try :
            send_mail(
                subject,
                message,
                sender,
                [self.email]
            )
        except socket.error as error :
            raise error
                
        self.is_validated=False
        Subscriber.objects.filter(email=self.email).update(is_validated=False)