3 from django
.db
import models
6 class ActifsManager(models
.Manager
):
8 def get_query_set(self
):
9 return super(ActifsManager
, self
).get_query_set().filter(actif
=True)
12 class Employe(models
.Model
):
14 Personne en contrat d'employé (CDD ou CDI) à l'AUF
16 id = models
.IntegerField(primary_key
=True)
17 nom
= models
.CharField(max_length
=255)
18 prenom
= models
.CharField(max_length
=255)
19 implantation
= models
.ForeignKey(
20 'references.Implantation',
21 db_column
='implantation',
22 related_name
='lieu_travail_theorique_de'
24 implantation_physique
= models
.ForeignKey(
25 'references.Implantation',
26 db_column
='implantation_physique',
27 related_name
='lieu_travail_reel_de'
29 courriel
= models
.CharField(max_length
=255, null
=True, blank
=True)
30 genre
= models
.CharField(max_length
=3)
31 fonction
= models
.CharField(max_length
=255, null
=True, blank
=True)
32 telephone_poste
= models
.CharField(max_length
=255, null
=True, blank
=True)
33 telephone_ip
= models
.CharField(max_length
=255, null
=True, blank
=True)
34 responsable
= models
.ForeignKey(
36 db_column
='responsable',
37 related_name
='responsable_de',
40 mandat_debut
= models
.DateField(null
=True, blank
=True)
41 mandat_fin
= models
.DateField(null
=True, blank
=True)
42 date_entree
= models
.DateField(null
=True, blank
=True)
43 service
= models
.ForeignKey('references.Service', db_column
='service')
44 poste_type_1
= models
.ForeignKey(
45 'references.PosteType',
46 null
=True, blank
=True,
47 db_column
='poste_type_1',
48 related_name
='poste_type_1'
50 poste_type_2
= models
.ForeignKey(
51 'references.PosteType',
52 null
=True, blank
=True,
53 db_column
='poste_type_2',
54 related_name
='poste_type_2'
57 actif
= models
.BooleanField()
60 db_table
= u
'ref_employe'
63 def __unicode__(self
):
64 return u
"%s, %s [%d]" % (self
.nom
, self
.prenom
, self
.id)
67 class Authentification(models
.Model
):
68 """Authentification"""
69 id = models
.ForeignKey(
70 'references.Employe', primary_key
=True, db_column
='id'
72 courriel
= models
.CharField(max_length
=255, unique
=True)
73 motdepasse
= models
.CharField(max_length
=255)
74 actif
= models
.BooleanField()
77 db_table
= u
'ref_authentification'
80 def __unicode__(self
):
81 return u
"%s [%d]" % (self
.courriel
, self
.id)
84 class Service(models
.Model
):
85 """Services (donnée de référence, source: SGRH).
87 id = models
.IntegerField(primary_key
=True)
88 nom
= models
.CharField(max_length
=255)
89 actif
= models
.BooleanField()
92 db_table
= u
'ref_service'
95 def __unicode__(self
):
96 return "%s (%s)" % (self
.nom
, self
.id)
99 class PosteType(models
.Model
):
100 """Postes types (donnée de référence, source: SGRH).
102 id = models
.IntegerField(primary_key
=True)
103 nom
= models
.CharField(max_length
=255)
104 actif
= models
.BooleanField()
107 db_table
= u
'ref_poste_type'
109 def __unicode__(self
):
110 return "%s (%s)" % (self
.nom
, self
.id)
113 class GroupeArh(models
.Model
):
114 id = models
.AutoField(primary_key
=True)
115 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
116 actif
= models
.BooleanField()
119 db_table
= u
'ref_groupe_arh'
122 class GroupeDirRegion(models
.Model
):
123 id = models
.AutoField(primary_key
=True)
124 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
125 region
= models
.ForeignKey('references.Region', db_column
='region')
126 actif
= models
.BooleanField()
129 db_table
= u
'ref_groupe_dir_region'
132 class GroupeAdmRegion(models
.Model
):
133 id = models
.AutoField(primary_key
=True)
134 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
135 region
= models
.ForeignKey('references.Region', db_column
='region')
136 actif
= models
.BooleanField()
139 db_table
= u
'ref_groupe_adm_region'
142 class GroupeRespImplantation(models
.Model
):
143 id = models
.AutoField(primary_key
=True)
144 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
145 implantation
= models
.ForeignKey(
146 'references.Implantation', db_column
='implantation'
148 type = models
.CharField(max_length
=255, blank
=True, null
=True)
149 actif
= models
.BooleanField()
152 db_table
= u
'ref_groupe_resp_implantation'
155 class GroupeDirProgramme(models
.Model
):
156 id = models
.AutoField(primary_key
=True)
157 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
158 service
= models
.ForeignKey('references.Service', db_column
='service')
159 actif
= models
.BooleanField()
162 db_table
= u
'ref_groupe_dir_programme'
165 class GroupeDirDelegProgrammeReg(models
.Model
):
166 id = models
.AutoField(primary_key
=True)
167 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
168 region
= models
.ForeignKey('references.Region', db_column
='region')
169 actif
= models
.BooleanField()
172 db_table
= u
'ref_groupe_dir_deleg_programme_reg'
175 class GroupeComptable(models
.Model
):
176 id = models
.AutoField(primary_key
=True)
177 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
178 actif
= models
.BooleanField()
181 db_table
= u
'ref_groupe_comptable'
184 class GroupeComptableRegional(models
.Model
):
185 id = models
.AutoField(primary_key
=True)
186 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
187 actif
= models
.BooleanField()
190 db_table
= u
'ref_groupe_comptable_regional'
193 class GroupeComptableLocal(models
.Model
):
194 id = models
.AutoField(primary_key
=True)
195 employe
= models
.ForeignKey('references.Employe', db_column
='employe')
196 actif
= models
.BooleanField()
199 db_table
= u
'ref_groupe_comptable_local'
202 class Discipline(models
.Model
):
203 """ ATTENTION: DÉSUET
204 Discipline (donnée de référence, source: SQI).
205 Une discipline est une catégorie de savoirs scientifiques.
206 Le conseil scientifique fixe la liste des disciplines.
209 id = models
.IntegerField(primary_key
=True)
210 code
= models
.CharField(max_length
=255, unique
=True)
211 nom
= models
.CharField(max_length
=255)
212 nom_long
= models
.CharField(max_length
=255, blank
=True)
213 nom_court
= models
.CharField(max_length
=255, blank
=True)
215 actif
= models
.BooleanField()
218 db_table
= u
'ref_discipline'
221 def __unicode__(self
):
222 return "%s - %s" % (self
.code
, self
.nom
)
225 class Programme(models
.Model
):
226 """ ATTENTION: DÉSUET
227 Programme (donnée de référence, source: SQI).
228 Structure interne par laquelle l'AUF exécute ses projets et activités,
229 dispense ses produits et ses services.
232 id = models
.IntegerField(primary_key
=True)
233 code
= models
.CharField(max_length
=255, unique
=True)
234 nom
= models
.CharField(max_length
=255)
235 nom_long
= models
.CharField(max_length
=255, blank
=True)
236 nom_court
= models
.CharField(max_length
=255, blank
=True)
238 actif
= models
.BooleanField()
241 db_table
= u
'ref_programme'
243 def __unicode__(self
):
244 return "%s - %s" % (self
.code
, self
.nom
)
247 #PROGRAMMATION QUADRIENNALLE
249 class Projet(models
.Model
):
250 """Projet (donnée de référence, source: programmation-quadriennalle).
254 "Direction de la langue et de la communication scientifique "
256 ('2', "Direction du développement et de la valorisation"),
258 "Direction de l'innovation pédagogique et de l'économie "
259 "de la connaissance"),
260 ('4', "Direction du renforcement des capacités scientifiques"),
263 id = models
.IntegerField(primary_key
=True)
264 code
= models
.CharField(max_length
=255, unique
=True)
265 nom
= models
.CharField(max_length
=255)
266 presentation
= models
.TextField(null
=True, blank
=True)
267 partenaires
= models
.TextField(null
=True, blank
=True)
268 service
= models
.CharField(
269 max_length
=255, choices
=SERVICE_CHOICES
, blank
=True, null
=True
271 objectif_specifique
= models
.ForeignKey(
272 'references.ObjectifSpecifique',
273 blank
=True, null
=True,
274 db_column
='objectif_specifique'
276 implantation
= models
.ForeignKey('references.Implantation', null
=True,
277 blank
=True, db_column
='implantation')
278 etablissement
= models
.ForeignKey('references.Etablissement', null
=True,
279 blank
=True, db_column
='etablissement')
280 date_debut
= models
.DateField(null
=True, blank
=True)
281 date_fin
= models
.DateField(null
=True, blank
=True)
283 actif
= models
.BooleanField()
286 db_table
= u
'ref_projet'
289 def __unicode__(self
):
290 return "%s - %s" % (self
.code
, self
.nom
)
293 class ProjetComposante(models
.Model
):
294 """Composantes des projets (source: programmation-quadriennalle)
296 id = models
.IntegerField(primary_key
=True)
297 code
= models
.CharField(max_length
=10)
298 nom
= models
.CharField(max_length
=255)
299 nom_court
= models
.CharField(max_length
=255, null
=True, blank
=True)
300 description
= models
.TextField(null
=True, blank
=True)
301 projet
= models
.ForeignKey('references.Projet', db_column
='projet')
303 actif
= models
.BooleanField()
306 db_table
= u
'ref_projet_composante'
309 def __unicode__(self
):
310 return "%s - %s" % (self
.code
, self
.nom
)
313 class UniteProjet(models
.Model
):
314 """Unités de projet (source: programmation-quadriennalle)
316 id = models
.IntegerField(primary_key
=True)
317 code
= models
.CharField(max_length
=10, unique
=True)
318 nom
= models
.CharField(max_length
=255)
320 actif
= models
.BooleanField()
323 db_table
= u
'ref_unite_projet'
326 def __unicode__(self
):
327 return "%s - %s" % (self
.code
, self
.nom
)
330 class ObjectifSpecifique(models
.Model
):
331 id = models
.IntegerField(primary_key
=True)
332 nom
= models
.CharField(max_length
=255)
333 objectif_strategique
= models
.ForeignKey('references.ObjectifStrategique',
334 db_column
='objectif_strategique')
336 actif
= models
.BooleanField()
339 db_table
= u
'ref_objectif_specifique'
342 def __unicode__(self
):
343 return "%s - %s" % (self
.id, self
.nom
)
346 class ObjectifStrategique(models
.Model
):
347 id = models
.IntegerField(primary_key
=True)
348 nom
= models
.CharField(max_length
=255)
349 description
= models
.TextField(null
=True, blank
=True)
351 actif
= models
.BooleanField()
354 db_table
= u
'ref_objectif_strategique'
357 def __unicode__(self
):
358 return "%s - %s" % (self
.id, self
.nom
)
361 class Thematique(models
.Model
):
362 id = models
.IntegerField(primary_key
=True)
363 nom
= models
.CharField(max_length
=255)
365 actif
= models
.BooleanField()
368 db_table
= u
'ref_thematique'
371 def __unicode__(self
):
372 return "%s - %s" % (self
.id, self
.nom
)
375 class ProjetUp(models
.Model
):
376 """Projet-unité de projet (source: coda)
379 id = models
.AutoField(primary_key
=True)
380 code
= models
.CharField(max_length
=255, unique
=True)
381 nom
= models
.CharField(max_length
=255)
382 nom_court
= models
.CharField(max_length
=255, blank
=True)
384 actif
= models
.BooleanField()
387 class Poste(models
.Model
):
388 """ ATTENTION: DÉSUET
389 Poste (donnée de référence, source: CODA).
390 Un poste est une catégorie destinée à venir raffiner un projet.
393 id = models
.IntegerField(primary_key
=True)
394 code
= models
.CharField(max_length
=255, unique
=True)
395 nom
= models
.CharField(max_length
=255)
396 type = models
.CharField(max_length
=255, blank
=True)
398 actif
= models
.BooleanField()
401 db_table
= u
'ref_poste'
403 def __unicode__(self
):
404 return "%s - %s (%s)" % (self
.code
, self
.nom
, self
.type)
407 class ProjetPoste(models
.Model
):
410 Projet-poste (donnée de référence, source: CODA).
411 Un projet-poste consiste en une raffinement d'un projet par un poste
412 (budgétaire). Subdivision utile pour le suivi budgétaire et comptable.
415 id = models
.IntegerField(primary_key
=True)
416 code
= models
.CharField(max_length
=255, unique
=True)
417 code_projet
= models
.ForeignKey(
418 'references.Projet', to_field
='code', db_column
='code_projet'
420 code_poste
= models
.ForeignKey(
421 'references.Poste', to_field
='code', db_column
='code_poste'
423 code_bureau
= models
.ForeignKey(
424 'references.Bureau', to_field
='code', db_column
='code_bureau'
426 code_programme
= models
.ForeignKey(
427 'references.Programme', to_field
='code', db_column
='code_programme'
430 actif
= models
.BooleanField()
433 db_table
= u
'ref_projet_poste'
435 def __unicode__(self
):
436 return "%s" % (self
.code
)
439 class Region(models
.Model
):
440 """Région (donnée de référence, source: referentiels_spip).
441 Une région est une subdivision géographique du monde pour la gestion de
444 code
= models
.CharField(max_length
=255, unique
=True)
445 nom
= models
.CharField(max_length
=255, db_index
=True)
446 implantation_bureau
= models
.ForeignKey(
447 'references.Implantation', db_column
='implantation_bureau',
448 related_name
='gere_region', null
=True, blank
=True
451 actif
= models
.BooleanField()
454 objects
= ActifsManager()
455 avec_inactifs
= models
.Manager()
458 db_table
= u
'ref_region'
460 verbose_name
= u
"région"
461 verbose_name_plural
= u
"régions"
463 def __unicode__(self
):
464 return "%s (%s)" % (self
.nom
, self
.code
)
467 class Bureau(models
.Model
):
469 Bureau (donnée de référence, source: SQI).
471 Référence legacy entre la notion de région et celle d'implantation
472 responsable des régions et du central.
475 - soit le bureau régional d'une région (implantations de type 'Bureau')
476 - soit la notion unique de Service central pour les 2 implantations
477 centrales (implantations de type 'Service central' et 'Siege').
479 Ne pas confondre avec les seuls 'bureaux régionaux'.
481 code
= models
.CharField(max_length
=255, unique
=True)
482 nom
= models
.CharField(max_length
=255)
483 nom_court
= models
.CharField(max_length
=255, blank
=True)
484 nom_long
= models
.CharField(max_length
=255, blank
=True)
485 implantation
= models
.ForeignKey(
486 'references.Implantation', db_column
='implantation'
488 region
= models
.ForeignKey('references.Region', db_column
='region')
490 actif
= models
.BooleanField()
493 db_table
= u
'ref_bureau'
495 verbose_name
= u
"bureau"
496 verbose_name_plural
= u
"bureaux"
498 def __unicode__(self
):
499 return "%s (%s)" % (self
.nom
, self
.code
)
502 class Implantation(models
.Model
):
504 Implantation (donnée de référence, source: Implantus)
506 Une implantation est un endroit où l'AUF est présente et offre des
507 services spécifiques. Deux implantations peuvent être au même endroit
511 (0, u
'Fermée ou jamais ouverte'),
513 (2, u
'Ouverture imminente'),
517 nom
= models
.CharField(max_length
=255)
518 nom_court
= models
.CharField(max_length
=255, blank
=True)
519 nom_long
= models
.CharField(max_length
=255, blank
=True)
520 type = models
.CharField(max_length
=255)
521 bureau_rattachement
= models
.ForeignKey(
522 'references.Implantation', db_column
='bureau_rattachement'
524 region
= models
.ForeignKey('references.Region', db_column
='region')
525 fuseau_horaire
= models
.CharField(max_length
=255, blank
=True)
526 code_meteo
= models
.CharField(max_length
=255, blank
=True)
528 responsable_implantation
= models
.IntegerField(null
=True, blank
=True)
530 adresse_postale_precision_avant
= models
.CharField(
531 max_length
=255, blank
=True, null
=True
533 adresse_postale_no
= models
.CharField(max_length
=30, blank
=True, null
=True)
534 adresse_postale_rue
= models
.CharField(
535 max_length
=255, blank
=True, null
=True
537 adresse_postale_bureau
= models
.CharField(
538 max_length
=255, blank
=True, null
=True
540 adresse_postale_precision
= models
.CharField(
541 max_length
=255, blank
=True, null
=True
543 adresse_postale_boite_postale
= models
.CharField(
544 max_length
=255, blank
=True, null
=True
546 adresse_postale_ville
= models
.CharField(max_length
=255)
547 adresse_postale_code_postal
= models
.CharField(
548 max_length
=20, blank
=True, null
=True
550 adresse_postale_code_postal_avant_ville
= models
.NullBooleanField()
551 adresse_postale_region
= models
.CharField(
552 max_length
=255, blank
=True, null
=True
554 adresse_postale_pays
= models
.ForeignKey(
555 'references.Pays', to_field
='code',
556 db_column
='adresse_postale_pays',
557 related_name
='impl_adresse_postale'
560 adresse_physique_precision_avant
= models
.CharField(
561 max_length
=255, blank
=True
563 adresse_physique_no
= models
.CharField(max_length
=30, blank
=True)
564 adresse_physique_rue
= models
.CharField(max_length
=255, blank
=True)
565 adresse_physique_bureau
= models
.CharField(max_length
=255, blank
=True)
566 adresse_physique_precision
= models
.CharField(max_length
=255, blank
=True)
567 adresse_physique_ville
= models
.CharField(max_length
=255)
568 adresse_physique_code_postal
= models
.CharField(max_length
=30, blank
=True)
569 adresse_physique_code_postal_avant_ville
= models
.NullBooleanField()
570 adresse_physique_region
= models
.CharField(max_length
=255, blank
=True)
571 adresse_physique_pays
= models
.ForeignKey(
572 'references.Pays', to_field
='code',
573 db_column
='adresse_physique_pays',
574 related_name
='impl_adresse_physique'
577 telephone
= models
.CharField(max_length
=255, blank
=True)
578 telephone_interne
= models
.CharField(max_length
=255, blank
=True)
579 fax
= models
.CharField(max_length
=255, blank
=True)
580 fax_interne
= models
.CharField(max_length
=255, blank
=True)
581 courriel
= models
.EmailField(blank
=True)
582 courriel_interne
= models
.EmailField(blank
=True)
583 url
= models
.URLField(verify_exists
=False, max_length
=255, blank
=True)
585 statut
= models
.IntegerField(choices
=STATUT_CHOICES
)
586 date_ouverture
= models
.DateField(null
=True, blank
=True)
587 date_inauguration
= models
.DateField(null
=True, blank
=True)
588 date_extension
= models
.DateField(null
=True, blank
=True)
589 date_fermeture
= models
.DateField(null
=True, blank
=True)
590 hebergement_etablissement
= models
.CharField(max_length
=255, blank
=True)
591 hebergement_convention
= models
.NullBooleanField()
592 hebergement_convention_date
= models
.DateField(null
=True, blank
=True)
593 remarque
= models
.TextField()
594 commentaire
= models
.CharField(max_length
=255, blank
=True)
596 actif
= models
.BooleanField()
597 modif_date
= models
.DateField()
601 class Ouvertes(models
.Manager
):
603 def get_query_set(self
):
604 return super(Implantation
.Managers
.Ouvertes
, self
) \
606 .filter(actif
=True, statut
=1)
608 class Actifs(models
.Manager
):
610 def get_query_set(self
):
611 return super(Implantation
.Managers
.Actifs
, self
) \
615 objects
= models
.Manager()
616 ouvertes
= Managers
.Ouvertes()
617 actifs
= Managers
.Actifs()
621 db_table
= u
'ref_implantation'
624 def __unicode__(self
):
625 return "%s (%d)" % (self
.nom
, self
.id)
628 class Pays(models
.Model
):
630 Pays (donnée de référence, source: SQI).
632 Liste AUF basée sur la liste ISO-3166-1.
634 code
= models
.CharField(max_length
=2, unique
=True)
635 code_iso3
= models
.CharField(max_length
=3, unique
=True)
636 nom
= models
.CharField(max_length
=255)
637 region
= models
.ForeignKey('references.Region', db_column
='region')
638 code_bureau
= models
.ForeignKey('references.Bureau', to_field
='code',
639 db_column
='code_bureau', blank
=True,
641 nord_sud
= models
.CharField(max_length
=255, blank
=True, null
=True)
642 developpement
= models
.CharField(max_length
=255, blank
=True, null
=True)
643 monnaie
= models
.CharField(max_length
=255, blank
=True, null
=True)
645 actif
= models
.BooleanField()
648 db_table
= u
'ref_pays'
650 verbose_name
= u
"pays"
651 verbose_name_plural
= u
"pays"
653 def __unicode__(self
):
654 return "%s (%s)" % (self
.nom
, self
.code
)
657 class EtablissementManager(models
.Manager
):
659 def __init__(self
, avec_inactifs
=False):
660 super(EtablissementManager
, self
).__init__()
661 self
.avec_inactifs
= avec_inactifs
663 def get_query_set(self
):
664 qs
= super(EtablissementManager
, self
).get_query_set()
665 if not self
.avec_inactifs
:
666 qs
= qs
.filter(actif
=True)
667 return qs
.select_related('pays')
670 class EtablissementBase(models
.Model
):
672 Établissement (donnée de référence, source: GDE).
674 Un établissement peut être une université, un centre de recherche, un
675 réseau d'établissement... Un établissement peut être membre de l'AUF ou
678 MEMBRE_STATUT_CHOICES
= (
684 ('ESR', "Établissement d'enseignement supérieur et de recherche"),
685 ('CIR', "Centre ou institution de recherche"),
690 nom
= models
.CharField(max_length
=255)
691 pays
= models
.ForeignKey(
692 'references.Pays', to_field
='code', db_column
='pays',
695 region
= models
.ForeignKey(
696 'references.Region', db_column
='region', blank
=True, null
=True,
697 related_name
='+', verbose_name
='région'
699 implantation
= models
.ForeignKey(
700 'references.Implantation', db_column
='implantation',
701 related_name
='+', blank
=True, null
=True
703 description
= models
.TextField(blank
=True)
704 historique
= models
.TextField(blank
=True)
707 membre
= models
.BooleanField()
708 membre_adhesion_date
= models
.DateField(null
=True, blank
=True,
709 verbose_name
="date d'adhésion")
710 statut
= models
.CharField(max_length
=1, choices
=MEMBRE_STATUT_CHOICES
,
711 blank
=True, null
=True)
712 qualite
= models
.CharField(max_length
=3, choices
=QUALITE_CHOICES
,
713 verbose_name
="qualité", blank
=True,
717 responsable_genre
= models
.CharField(
718 max_length
=1, blank
=True, verbose_name
='genre'
720 responsable_nom
= models
.CharField(
721 max_length
=255, blank
=True, verbose_name
='nom'
723 responsable_prenom
= models
.CharField(
724 max_length
=255, blank
=True, verbose_name
='prénom'
726 responsable_fonction
= models
.CharField(
727 max_length
=255, blank
=True, verbose_name
='fonction'
731 adresse
= models
.CharField(max_length
=255, blank
=True)
732 code_postal
= models
.CharField(max_length
=20, blank
=True,
733 verbose_name
='code postal')
734 cedex
= models
.CharField(max_length
=20, blank
=True, verbose_name
='CEDEX')
735 ville
= models
.CharField(max_length
=255, blank
=True)
736 province
= models
.CharField(max_length
=255, blank
=True)
737 telephone
= models
.CharField(max_length
=255, blank
=True,
738 verbose_name
='téléphone')
739 fax
= models
.CharField(max_length
=255, blank
=True)
740 url
= models
.URLField(verify_exists
=False, max_length
=255, null
=True,
741 blank
=True, verbose_name
='URL')
744 actif
= models
.BooleanField(default
=True)
745 date_modification
= models
.DateField(verbose_name
='date de modification',
746 blank
=True, null
=True)
747 commentaire
= models
.TextField(blank
=True)
750 objects
= EtablissementManager()
751 avec_inactifs
= EtablissementManager(avec_inactifs
=True)
755 ordering
= ['pays__nom', 'nom']
757 def __unicode__(self
):
758 return "%s - %s" % (self
.pays
.nom
, self
.nom
)
761 class Etablissement(EtablissementBase
):
763 class Meta(EtablissementBase
.Meta
):
764 db_table
= u
'ref_etablissement'