[#3130] Optimisation des index pour le rapport de masse salariale
[auf_rh_dae.git] / project / rh / models.py
index 143c8cd..5ac9044 100644 (file)
@@ -281,10 +281,12 @@ class Poste_(AUFMetadata):
 
     # Autres Metadata
     date_debut = models.DateField(
-        u"date de début", help_text=HELP_TEXT_DATE, null=True, blank=True
+        u"date de début", help_text=HELP_TEXT_DATE, null=True, blank=True,
+        db_index=True
     )
     date_fin = models.DateField(
-        u"date de fin", help_text=HELP_TEXT_DATE, null=True, blank=True
+        u"date de fin", help_text=HELP_TEXT_DATE, null=True, blank=True,
+        db_index=True
     )
 
     class Meta:
@@ -749,9 +751,12 @@ class Dossier_(AUFMetadata, DevisableMixin):
     )
 
     # Occupation du Poste par cet Employe (anciennement "mandat")
-    date_debut = models.DateField(u"date de début d'occupation de poste")
+    date_debut = models.DateField(
+        u"date de début d'occupation de poste", db_index=True
+    )
     date_fin = models.DateField(
-        u"Date de fin d'occupation de poste", null=True, blank=True
+        u"Date de fin d'occupation de poste", null=True, blank=True,
+        db_index=True
     )
 
     # Comptes
@@ -1090,8 +1095,12 @@ class RemunerationMixin(AUFMetadata):
     commentaire = models.CharField(max_length=255, null=True, blank=True)
 
     # date_debut = anciennement date_effectif
-    date_debut = models.DateField(u"date de début", null=True, blank=True)
-    date_fin = models.DateField(u"date de fin", null=True, blank=True)
+    date_debut = models.DateField(
+        u"date de début", null=True, blank=True, db_index=True
+    )
+    date_fin = models.DateField(
+        u"date de fin", null=True, blank=True, db_index=True
+    )
 
     objects = RemunerationManager()
 
@@ -1157,8 +1166,12 @@ class Contrat_(AUFMetadata):
         'TypeContrat', db_column='type_contrat',
         verbose_name=u'type de contrat', related_name='+'
     )
-    date_debut = models.DateField(u"date de début")
-    date_fin = models.DateField(u"date de fin", null=True, blank=True)
+    date_debut = models.DateField(
+        u"date de début", db_index=True
+    )
+    date_fin = models.DateField(
+        u"date de fin", null=True, blank=True, db_index=True
+    )
     fichier = models.FileField(
         upload_to=contrat_dispatch, storage=storage_prive, null=True,
         blank=True
@@ -1454,6 +1467,7 @@ class TauxChange_(AUFMetadata):
         ordering = ['-annee', 'devise__code']
         verbose_name = u"Taux de change"
         verbose_name_plural = u"Taux de change"
+        unique_together = ('devise', 'annee')
 
     def __unicode__(self):
         return u'%s : %s € (%s)' % (self.devise, self.taux, self.annee)
@@ -1494,6 +1508,7 @@ class ValeurPoint_(AUFMetadata):
         abstract = True
         verbose_name = u"Valeur du point"
         verbose_name_plural = u"Valeurs du point"
+        unique_together = ('implantation', 'annee')
 
     def __unicode__(self):
         return u'%s %s %s [%s] %s' % (