Commit | Line | Data |
---|---|---|
01b54c21 MN |
1 | # -*- encoding: utf-8 -* |
2 | from django import forms | |
3 | from django.db import models | |
4 | ||
5 | class Communication(models.Model): | |
6 | region = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'Afrique Centrale et des Grands-Lacs'), ('2', 'Afrique de l\'ouest'), ('3', 'Amériques'), ('4', 'Asie-Pacifique'), ('3', 'Caraïbe'), ('4', 'Europe centrale et orientale'), ('3', 'Moyen-Orient'), ('4', 'Océan Indien'), ('3', 'Maghreb'), ('4', 'Europe de l\'Ouest'))) | |
7 | status = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'En cours de redaction'), ('2', 'Propose a la publication'), ('3', 'Publie en Ligne'), ('4', 'A supprimer'))) | |
8 | titre = models.CharField(max_length=200) | |
9 | sous_titre = models.CharField(max_length=300, null=True, blank=True,) | |
10 | lieu = models.CharField(max_length=300) | |
11 | slug = models.SlugField(unique=True) | |
12 | texte = models.TextField() | |
13 | image = models.ImageField(null=True, blank=True, upload_to='communication') | |
14 | date_pub = models.DateField('date de publication') | |
15 | date_limite = models.DateField('date limite') | |
16 | date_event = models.DateField('date de l\'événement') | |
17 | date_mod = models.DateTimeField('date de derniere modification', auto_now_add=True) | |
18 | ||
19 | class Meta: | |
20 | ordering = ('-date_pub',) | |
21 | ||
22 | def __unicode__(self): | |
23 | return self.titre | |
24 | ||
25 | def get_absolute_url(self): | |
26 | return "/appels-communications/%s/" %self.slug | |
27 | ||
28 | class Contribution(models.Model): | |
29 | region = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'Afrique Centrale et des Grands-Lacs'), ('2', 'Afrique de l\'ouest'), ('3', 'Amériques'), ('4', 'Asie-Pacifique'), ('3', 'Caraïbe'), ('4', 'Europe centrale et orientale'), ('3', 'Moyen-Orient'), ('4', 'Océan Indien'), ('3', 'Maghreb'), ('4', 'Europe de l\'Ouest'))) | |
30 | status = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'En cours de redaction'), ('2', 'Propose a la publication'), ('3', 'Publie en Ligne'), ('4', 'A supprimer'))) | |
31 | titre = models.CharField(max_length=200) | |
32 | sous_titre = models.CharField(max_length=300, null=True, blank=True,) | |
33 | lieu = models.CharField(max_length=300) | |
34 | slug = models.SlugField(unique=True) | |
35 | texte = models.TextField() | |
36 | image = models.ImageField(null=True, blank=True, upload_to='contribution') | |
37 | date_pub = models.DateField('date de publication') | |
38 | date_limite = models.DateField('date limite') | |
39 | date_event = models.DateField('date de l\'événement') | |
40 | date_mod = models.DateTimeField('date de derniere modification', auto_now_add=True) | |
41 | ||
42 | class Meta: | |
43 | ordering = ('-date_pub',) | |
44 | ||
45 | def __unicode__(self): | |
46 | return self.titre | |
47 | ||
48 | def get_absolute_url(self): | |
49 | return "/appels-contributions/%s/" %self.slug | |
50 | ||
51 | class Offre(models.Model): | |
52 | region = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'Afrique Centrale et des Grands-Lacs'), ('2', 'Afrique de l\'ouest'), ('3', 'Amériques'), ('4', 'Asie-Pacifique'), ('3', 'Caraïbe'), ('4', 'Europe centrale et orientale'), ('3', 'Moyen-Orient'), ('4', 'Océan Indien'), ('3', 'Maghreb'), ('4', 'Europe de l\'Ouest'))) | |
53 | status = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'En cours de redaction'), ('2', 'Propose a la publication'), ('3', 'Publie en Ligne'), ('4', 'A supprimer'))) | |
54 | titre = models.CharField(max_length=200) | |
55 | sous_titre = models.CharField(max_length=300, null=True, blank=True,) | |
56 | lieu = models.CharField(max_length=300) | |
57 | slug = models.SlugField(unique=True) | |
58 | texte = models.TextField() | |
59 | image = models.ImageField(null=True, blank=True, upload_to='offres') | |
60 | date_pub = models.DateField('date de publication') | |
61 | date_limite = models.DateField('date limite') | |
62 | date_event = models.DateField('date de l\'événement') | |
63 | date_mod = models.DateTimeField('date de derniere modification', auto_now_add=True) | |
64 | ||
65 | class Meta: | |
66 | ordering = ('-date_pub',) | |
67 | ||
68 | def __unicode__(self): | |
69 | return self.titre | |
70 | ||
71 | def get_absolute_url(self): | |
72 | return "/appels-offres/%s/" %self.slug | |
73 | ||
74 | class Archive(models.Model): | |
75 | status = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'En cours de redaction'), ('2', 'Propose a la publication'), ('3', 'Publie en Ligne'), ('4', 'A supprimer'))) | |
76 | numero = models.IntegerField(null=False, unique=True) | |
77 | titre = models.CharField(max_length=200) | |
78 | texte = models.TextField() | |
79 | fichier = models.FileField(upload_to='archives') | |
80 | date_pub = models.DateField('date de publication') | |
81 | date_mod = models.DateTimeField('date de derniere modification', auto_now_add=True) | |
82 | ||
83 | class Meta: | |
84 | ordering = ('-date_pub',) | |
85 | ||
86 | def __unicode__(self): | |
87 | return self.titre | |
88 | ||
89 | def get_absolute_url(self): | |
f121d446 | 90 | return "/archives/%s/" %self.id |
01b54c21 MN |
91 | |
92 | class Abonne(models.Model): | |
93 | adresse = models.EmailField(max_length=75, verbose_name='Adresse') | |
94 | date = models.DateField(auto_now_add=True) | |
95 | valide = models.BooleanField(default=True) | |
96 | ||
97 | class AbonneForm(forms.ModelForm): | |
98 | class Meta: | |
99 | model = Abonne | |
100 | fields = ('adresse',) | |
101 | ||
102 | def clean(self): | |
103 | cleaned_data = self.cleaned_data | |
104 | ||
105 | if Abonne.objects.filter(adresse=cleaned_data.get("adresse")): | |
106 | raise forms.ValidationError("Vous êtes déja inscrit à la lettre d\'information") | |
107 | ||
108 | return cleaned_data | |
109 | ||
110 | class DesinscireForm(forms.Form): | |
111 | adresse = forms.EmailField(label="", max_length=75) | |
112 | ||
113 | def clean(self): | |
114 | cleaned_data = self.cleaned_data | |
115 | ||
116 | if not Abonne.objects.filter(adresse=cleaned_data.get("adresse")): | |
117 | raise forms.ValidationError("Vous êtes pas inscrit à la lettre d\'information") | |
118 | ||
119 | return cleaned_data |