ac13f223c87ac2fd6306e2129769ec6339236f07
[progfou.git] / auf_zap / formations / models.py
1 # -*- coding: utf-8 -*-
2 from django.db import models
3
4 class NiveauDiplome(models.Model):
5 label = models.CharField(u'Niveau de diplôme', max_length=100)
6 niveau = models.IntegerField(u'Niveau')
7
8 def __unicode__(self):
9 return u'%s (%d an%s)' % (self.label, self.niveau, self.niveau>0 and 's' or '')
10
11 class Meta:
12 ordering = ('niveau',)
13
14 class TypeDiplome(models.Model):
15 label = models.CharField(u'Type de diplôme', max_length=100)
16
17 def __unicode__(self):
18 return self.label
19
20 class Meta:
21 ordering = ('label',)
22
23 class ReconnaissanceDiplome(models.Model):
24 label = models.CharField(u'Reconnaissance du diplôme', max_length=100)
25
26 def __unicode__(self):
27 return self.label
28
29 class Meta:
30 ordering = ('label',)
31
32 class DomaineScientifique(models.Model):
33 label = models.CharField(u'Domaine scientifique', max_length=100)
34 code = models.IntegerField(u'Code')
35
36 def __unicode__(self):
37 return u'%d %s' % (self.code, self.label)
38
39 class Meta:
40 ordering = ('code',)
41
42 class Specialisation(models.Model):
43 domaine = models.ForeignKey(DomaineScientifique)
44 label = models.CharField(u'Spécialisation', max_length=100)
45 code = models.IntegerField(u'Code')
46
47 def __unicode__(self):
48 return u'%d.%d %s' % (self.domaine.code, self.code, self.label)
49
50 class Meta:
51 ordering = ('domaine','code')
52
53 class Langue(models.Model):
54 label = models.CharField(u'Langue', max_length=40)
55
56 def __unicode__(self):
57 return self.label
58
59 class Meta:
60 ordering = ('label',)
61
62 class Pays(models.Model):
63 label = models.CharField(u'Pays', max_length=80)
64
65 def __unicode__(self):
66 return self.label
67
68 class Meta:
69 ordering = ('label',)
70
71 class Universite(models.Model):
72 label = models.CharField(u'Université', max_length=200)
73 pays = models.ForeignKey(Pays)
74 ville = models.CharField(u'Ville', max_length=80)
75
76 def __unicode__(self):
77 return u'%s — %s' % (self.pays, self.label)
78
79 class Meta:
80 ordering = ('pays','label')
81
82 class TypeSelection(models.Model):
83 label = models.CharField(u'Type de sélection', max_length=80)
84
85 def __unicode__(self):
86 return self.label
87
88 class Meta:
89 ordering = ('label',)
90
91 class TypeFormation(models.Model):
92 label = models.CharField(u'Type de formation', max_length=100)
93
94 def __unicode__(self):
95 return self.label
96
97 class Meta:
98 ordering = ('label',)
99
100 class Formation(models.Model):
101 nom_diplome = models.CharField(u'Nom du diplôme', max_length=200)
102 niveau_diplome = models.ForeignKey(NiveauDiplome)
103 domaine_scientifique = models.ForeignKey(DomaineScientifique)
104 specialisation = models.ForeignKey(Specialisation)
105 langues = models.ManyToManyField(Langue)
106 annee_creation = models.DateField(u'Année de création de la formation')
107 duree_en_mois = models.IntegerField(u'Durée de la formation (en mois)')
108 nom_responsable = models.CharField(u'Nom du responsable', max_length=100)
109 nom_co_responsable = models.CharField(u'Nom du co-responsable', max_length=100)
110 adresse_postale = models.CharField(u'Adresse postale', max_length=200)
111 adresse_electronique = models.CharField(u'Adresse électronique', max_length=100)
112 telephone = models.CharField(u'Téléphone', max_length=20)
113 telecopie = models.CharField(u'Télécopie', max_length=20)
114 site_web = models.CharField('Site web', max_length=200)
115 universite_accueil = models.ForeignKey(Universite, related_name='universite_accueil')
116 partenaires = models.ManyToManyField(Universite)
117 type_diplome = models.ForeignKey(TypeDiplome)
118 reconnaissance_diplome = models.ForeignKey(ReconnaissanceDiplome)
119 indications_cout = models.CharField(u'Indications de coût', max_length=200)
120 bourses_aides = models.CharField(u'Bourses et/ou aides', max_length=200)
121 pre_requis = models.CharField(u'Pré-requis', max_length=200)
122 type_selection = models.ForeignKey(TypeSelection)
123 type_formation = models.ForeignKey(TypeFormation)
124 #photo = models.File()
125
126 def __unicode__(self):
127 return self.nom_diplome
128
129 class Meta:
130 ordering = ('nom_diplome',)
131
132 class LangueFormation(models.Model):
133 langue = models.ForeignKey(Langue)
134 formation = models.ForeignKey(Formation)
135 pourcentage = models.IntegerField(u"Pourcentage d'utilisation")
136
137 def __unicode__(self):
138 return u'%s (%s)' % (self.langue, self.pourcentage)
139
140 class Meta:
141 ordering = ('formation', 'pourcentage')
142