[#2562] Filtrage automatique des actifs sur Region et Etablissement
authorEric Mc Sween <eric.mcsween@auf.org>
Fri, 24 Feb 2012 18:04:24 +0000 (13:04 -0500)
committerEric Mc Sween <eric.mcsween@auf.org>
Fri, 24 Feb 2012 18:04:24 +0000 (13:04 -0500)
auf/django/references/managedref/models.py

index 3ce88a5..16178cc 100644 (file)
@@ -3,6 +3,12 @@
 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
     """
@@ -423,6 +429,10 @@ class Region(models.Model):
     # meta
     actif = models.BooleanField()
 
+    # managers
+    objects = ActifsManager()
+    avec_inactifs = models.Manager()
+
     class Meta:
         db_table = u'ref_region'
         ordering = ['nom']
@@ -581,8 +591,14 @@ class Pays(models.Model):
 
 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()
+        if not self.avec_inactifs:
+            qs = qs.filter(actif=True)
         return qs.select_related('pays')
 
 
@@ -652,6 +668,7 @@ class EtablissementBase(models.Model):
 
     # Manager
     objects = EtablissementManager()
+    avec_inactifs = EtablissementManager(avec_inactifs=True)
 
     class Meta:
         abstract = True