1501: Début modèles (Candidat, OffreEmploi).
[auf_rh_dae.git] / project / recrutement / models.py
1 # -=- encoding: utf-8 -=-
2
3 import datetime
4
5 from django.db import models
6
7 import datamaster_modeles.models as ref
8 from project.rh import models as rh
9
10
11 # Abstracts
12 class Metadata(models.Model):
13 """Méta-données AUF.
14 Metadata.actif = flag remplaçant la suppression.
15 actif == False : objet réputé supprimé.
16 """
17 actif = models.BooleanField(default=True)
18 date_creation = models.DateField(auto_now_add=True)
19
20 class Meta:
21 abstract = True
22
23
24 class OffreEmploi(Metadata):
25 nom = models.CharField(max_length=255)
26 resume = models.TextField()
27 description = models.TextField()
28 poste = models.ForeignKey(rh.Poste, db_column='poste')
29 date_limite = models.DateField(verbose_name="Date limite")
30 region = models.ForeignKey(ref.Region, db_column='region')
31 bureau = models.ForeignKey(ref.Bureau, db_column='bureau')
32
33
34 ### CANDIDAT
35
36 GENRE_CHOICES = (
37 ('M', 'Homme'),
38 ('F', 'Femme'),
39 )
40 SITUATION_CHOICES = (
41 ('C', 'Célibataire'),
42 ('F', 'Fiancé'),
43 ('M', 'Marié'),
44 ('D', 'Divorcé'),
45 )
46 STATUT_CHOICES = (
47 ('NOUV', 'Nouveau'),
48 ('REF', 'Refusé'),
49 ('SEL', 'Sélectionné'),
50 ('ACC', 'Accepté'),
51 ('REC', 'Recevable'), # Trouver une lettre plus appropriée?
52 )
53
54 class Candidat(Metadata):
55 offre_emploi = models.ForeignKey('OffreEmploi', db_column='offre_emploi',
56 related_name='candidats')
57 prenom = models.CharField(max_length=255)
58 nom = models.CharField(max_length=255)
59 genre = models.CharField(max_length=1, choices=GENRE_CHOICES)
60 nationalite = models.ForeignKey(ref.Pays,
61 db_column='nationalite',
62 related_name='candidat_nationalite')
63 date_naissance = models.DateField(verbose_name="Date de naissance")
64 situation_famille = models.CharField(max_length=1,
65 choices=SITUATION_CHOICES)
66 nombre_dependant = models.IntegerField(verbose_name="Nombre de dépendant")
67 niveau_diplome = models.CharField(max_length=255,
68 verbose_name="Niveau du diplôme")
69 employeur_actuel = models.CharField(max_length=255)
70 poste_actuel = models.CharField(max_length=255)
71 domaine_professionnel = models.CharField(max_length=255)
72
73 # Adresse
74 adresse = models.CharField(max_length=255)
75 ville = models.CharField(max_length=255)
76 etat_province = models.CharField(max_length=255,
77 verbose_name="État/Province")
78 pays = models.ForeignKey(ref.Pays, db_column='pays',
79 related_name='candidat_pays')
80
81 statut = models.CharField(max_length=4,
82 choices=STATUT_CHOICES)