1 # -*- coding: utf-8 -*-
2 from django
.db
import models
4 class NiveauDiplome(models
.Model
):
5 label
= models
.CharField(u
'Niveau de diplôme', max_length
=100)
6 niveau
= models
.IntegerField(u
'Niveau')
9 return u
'%s (%d an%s)' % (self
.label
, self
.niveau
, self
.niveau
>0 and 's' or '')
12 ordering
= ('niveau',)
14 class TypeDiplome(models
.Model
):
15 label
= models
.CharField(u
'Type de diplôme', max_length
=100)
17 def __unicode__(self
):
23 class ReconnaissanceDiplome(models
.Model
):
24 label
= models
.CharField(u
'Reconnaissance du diplôme', max_length
=100)
26 def __unicode__(self
):
32 class DomaineScientifique(models
.Model
):
33 label
= models
.CharField(u
'Domaine scientifique', max_length
=100)
34 code
= models
.IntegerField(u
'Code')
36 def __unicode__(self
):
37 return u
'%d %s' % (self
.code
, self
.label
)
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')
47 def __unicode__(self
):
48 return u
'%d.%d %s' % (self
.domaine
.code
, self
.code
, self
.label
)
51 ordering
= ('domaine','code')
53 class Langue(models
.Model
):
54 label
= models
.CharField(u
'Langue', max_length
=40)
56 def __unicode__(self
):
62 class Pays(models
.Model
):
63 label
= models
.CharField(u
'Pays', max_length
=80)
65 def __unicode__(self
):
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)
76 def __unicode__(self
):
77 return u
'%s — %s' % (self
.pays
, self
.label
)
80 ordering
= ('pays','label')
82 class TypeSelection(models
.Model
):
83 label
= models
.CharField(u
'Type de sélection', max_length
=80)
85 def __unicode__(self
):
91 class TypeFormation(models
.Model
):
92 label
= models
.CharField(u
'Type de formation', max_length
=100)
94 def __unicode__(self
):
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()
126 def __unicode__(self
):
127 return self
.nom_diplome
130 ordering
= ('nom_diplome',)
132 class LangueFormation(models
.Model
):
133 langue
= models
.ForeignKey(Langue
)
134 formation
= models
.ForeignKey(Formation
)
135 pourcentage
= models
.IntegerField(u
"Pourcentage d'utilisation")
137 def __unicode__(self
):
138 return u
'%s (%s)' % (self
.langue
, self
.pourcentage
)
141 ordering
= ('formation', 'pourcentage')