petit bug
[auf_framonde.git] / project / framonde / models.py
CommitLineData
01b54c21
MN
1# -*- encoding: utf-8 -*
2from django import forms
3from django.db import models
4
5class 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
28class 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
51class 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
74class 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
92class 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
97class 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
110class 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