modifié les modèles pour accommoder les données RH pleines de NULL
authorNicolas Cadou <ncadou@cadou.ca>
Fri, 10 Jun 2011 18:23:59 +0000 (14:23 -0400)
committerNicolas Cadou <ncadou@cadou.ca>
Fri, 10 Jun 2011 18:58:30 +0000 (14:58 -0400)
project/rh/models.py

index 4c1c298..6bd05e3 100644 (file)
@@ -86,34 +86,34 @@ class Poste_(Metadata):
     type_poste = models.ForeignKey('TypePoste', db_column='type_poste',
                             related_name='+',
                             null=True)
-    service = models.ForeignKey('Service', db_column='service', 
+    service = models.ForeignKey('Service', db_column='service', null=True,
                             related_name='+',
                             verbose_name="Direction/Service/Pôle support",
                             default=1)  # default = Rectorat
     responsable = models.ForeignKey('Poste', db_column='responsable', 
-                            related_name='+',
+                            related_name='+', null=True,
                             verbose_name="Poste du responsable",
                             default=149)    # default = Recteur
                                 
     # Contrat
     regime_travail = models.DecimalField(max_digits=12, decimal_places=2,
-                            default=REGIME_TRAVAIL_DEFAULT, 
+                            default=REGIME_TRAVAIL_DEFAULT, null=True,
                             verbose_name="Temps de travail", 
                             help_text="% du temps complet")
     regime_travail_nb_heure_semaine = models.DecimalField(max_digits=12,
-                            decimal_places=2,
+                            decimal_places=2, null=True,
                             default=REGIME_TRAVAIL_NB_HEURE_SEMAINE_DEFAULT,
                             verbose_name="Nb. heures par semaine")
 
     # Recrutement
-    local = models.BooleanField(verbose_name="Local", default=True, 
-                            blank=True)
-    expatrie = models.BooleanField(verbose_name="Expatrié", default=False, 
-                            blank=True)
-    mise_a_disposition = models.BooleanField(
+    local = models.NullBooleanField(verbose_name="Local", default=True, 
+                            null=True, blank=True)
+    expatrie = models.NullBooleanField(verbose_name="Expatrié", default=False, 
+                            null=True, blank=True)
+    mise_a_disposition = models.NullBooleanField(
                             verbose_name="Mise à disposition",
-                            default=False)
-    appel = models.CharField(max_length=10, 
+                            null=True, default=False)
+    appel = models.CharField(max_length=10, null=True,
                             verbose_name="Appel à candidature",
                             choices=POSTE_APPEL_CHOICES,
                             default='interne')
@@ -131,25 +131,25 @@ class Poste_(Metadata):
     valeur_point_max = models.ForeignKey('ValeurPoint', 
                             db_column='valeur_point_max', related_name='+', 
                             null=True, blank=True)
-    devise_min = models.ForeignKey('Devise', db_column='devise_min', 
+    devise_min = models.ForeignKey('Devise', db_column='devise_min', null=True,
                             related_name='+', default=5)
-    devise_max = models.ForeignKey('Devise', db_column='devise_max', 
+    devise_max = models.ForeignKey('Devise', db_column='devise_max', null=True,
                             related_name='+', default=5)
     salaire_min = models.DecimalField(max_digits=12, decimal_places=2,
-                            default=0)
+                            null=True, default=0)
     salaire_max = models.DecimalField(max_digits=12, decimal_places=2,
-                            default=0)
+                            null=True, default=0)
     indemn_min = models.DecimalField(max_digits=12, decimal_places=2,
-                            default=0)
+                            null=True, default=0)
     indemn_max = models.DecimalField(max_digits=12, decimal_places=2,
-                            default=0)
+                            null=True, default=0)
     autre_min = models.DecimalField(max_digits=12, decimal_places=2,
-                            default=0)
+                            null=True, default=0)
     autre_max = models.DecimalField(max_digits=12, decimal_places=2,
-                            default=0)
+                            null=True, default=0)
 
     # Comparatifs de rémunération
-    devise_comparaison = models.ForeignKey('Devise', 
+    devise_comparaison = models.ForeignKey('Devise', null=True,
                             db_column='devise_comparaison', 
                             related_name='+',
                             default=5)
@@ -179,7 +179,7 @@ class Poste_(Metadata):
 
     # Autres Metadata
     date_validation = models.DateTimeField(null=True, blank=True)   # de dae
-    date_debut = models.DateField(verbose_name="Date de début",
+    date_debut = models.DateField(verbose_name="Date de début", null=True,
                             help_text=HELP_TEXT_DATE)
     date_fin = models.DateField(verbose_name="Date de fin",
                             help_text=HELP_TEXT_DATE,
@@ -452,7 +452,8 @@ class Dossier_(Metadata):
                             verbose_name="Employé")
     poste = models.ForeignKey('Poste', db_column='poste', 
                             related_name='+', editable=False)
-    statut = models.ForeignKey('Statut', related_name='+', default=3)
+    statut = models.ForeignKey('Statut', related_name='+', default=3,
+                            null=True)
     organisme_bstg = models.ForeignKey('OrganismeBstg', 
                             db_column='organisme_bstg',
                             related_name='+',
@@ -465,20 +466,20 @@ class Dossier_(Metadata):
     # Recrutement
     remplacement = models.BooleanField(default=False)
     statut_residence = models.CharField(max_length=10, default='local', 
-                            verbose_name="Statut",
+                            verbose_name="Statut", null=True,
                             choices=STATUT_RESIDENCE_CHOICES)
    
     # Rémunération
     classement = models.ForeignKey('Classement', db_column='classement', 
                             related_name='+',
                             null=True, blank=True)
-    regime_travail = models.DecimalField(max_digits=12, 
+    regime_travail = models.DecimalField(max_digits=12, null=True,
                             decimal_places=2,
                             default=REGIME_TRAVAIL_DEFAULT,
                             verbose_name="Régime de travail",
                             help_text="% du temps complet")
     regime_travail_nb_heure_semaine = models.DecimalField(max_digits=12,
-                            decimal_places=2, 
+                            decimal_places=2, null=True,
                             default=REGIME_TRAVAIL_NB_HEURE_SEMAINE_DEFAULT,
                             verbose_name="Nb. heures par semaine")
 
@@ -870,7 +871,8 @@ class Classement_(Metadata):
     type = models.CharField(max_length=10, choices=TYPE_CLASSEMENT_CHOICES)
     echelon = models.IntegerField(verbose_name="Échelon")
     degre = models.IntegerField(verbose_name="Degré")
-    coefficient = models.FloatField(default=0, verbose_name="Coéfficient")
+    coefficient = models.FloatField(default=0, verbose_name="Coéfficient",
+                                    null=True)
     # Méta
     # annee # au lieu de date_debut et date_fin
     commentaire = models.TextField(null=True, blank=True)
@@ -920,8 +922,8 @@ class ValeurPoint_(Metadata):
 
     salaire de base = coefficient * valeur du point de l'Implantation du Poste
     """
-    valeur = models.FloatField()
-    devise = models.ForeignKey('Devise', db_column='devise', 
+    valeur = models.FloatField(null=True)
+    devise = models.ForeignKey('Devise', db_column='devise', null=True,
                             related_name='+', default=5)
     implantation = models.ForeignKey(ref.Implantation, 
                             db_column='implantation',