[#2562] Filtrage automatique des actifs sur Region et Etablissement
[auf_django_references.git] / auf / django / references / managedref / models.py
index 3ce88a5..16178cc 100644 (file)
@@ -3,6 +3,12 @@
 from django.db import models
 
 
 from django.db import models
 
 
+class ActifsManager(models.Manager):
+
+    def get_query_set(self):
+        return super(ActifsManager, self).get_query_set().filter(actif=True)
+
+
 class Employe(models.Model):
     """Personne en contrat d'employé (CDD ou CDI) à l'AUF
     """
 class Employe(models.Model):
     """Personne en contrat d'employé (CDD ou CDI) à l'AUF
     """
@@ -423,6 +429,10 @@ class Region(models.Model):
     # meta
     actif = models.BooleanField()
 
     # meta
     actif = models.BooleanField()
 
+    # managers
+    objects = ActifsManager()
+    avec_inactifs = models.Manager()
+
     class Meta:
         db_table = u'ref_region'
         ordering = ['nom']
     class Meta:
         db_table = u'ref_region'
         ordering = ['nom']
@@ -581,8 +591,14 @@ class Pays(models.Model):
 
 class EtablissementManager(models.Manager):
 
 
 class EtablissementManager(models.Manager):
 
+    def __init__(self, avec_inactifs=False):
+        super(EtablissementManager, self).__init__()
+        self.avec_inactifs=avec_inactifs
+
     def get_query_set(self):
         qs = super(EtablissementManager, self).get_query_set()
     def get_query_set(self):
         qs = super(EtablissementManager, self).get_query_set()
+        if not self.avec_inactifs:
+            qs = qs.filter(actif=True)
         return qs.select_related('pays')
 
 
         return qs.select_related('pays')
 
 
@@ -652,6 +668,7 @@ class EtablissementBase(models.Model):
 
     # Manager
     objects = EtablissementManager()
 
     # Manager
     objects = EtablissementManager()
+    avec_inactifs = EtablissementManager(avec_inactifs=True)
 
     class Meta:
         abstract = True
 
     class Meta:
         abstract = True