Poste : liste dans admin + occupe_par() + is_vacant()
[auf_rh_dae.git] / project / rh / models.py
index cf85772..4d980ac 100644 (file)
@@ -183,13 +183,22 @@ class Poste_(AUFMetadata):
         representation = u'%s - %s [%s]' % (self.implantation, self.nom, 
                             self.id)
         if self.is_vacant():
-            representation = representation + u' (vacant)'
+            representation = representation + u' (VACANT)'
         return representation
         
     def is_vacant(self):
-        # TODO : si existe un dossier actif pour ce poste, return False
-        # self.dossier_set.all() fonctionne pas
-        return False
+        vacant = True
+        if self.occupe_par():
+            vacant = False
+        return vacant
+
+    def occupe_par(self):
+        """Retourne la liste d'employé occupant ce poste.
+        Généralement, retourne une liste d'un élément.
+        Si poste inoccupé, retourne liste vide.
+        """
+        return [d.employe for d in self.dossiers.filter(actif=True, supprime=False) \
+            .exclude(date_fin__lt=date.today())]
 
     prefix_implantation = "implantation__region"
     def get_regions(self):