Voir les chercheurs inactif dans l'administration
authorPA Parent <paparent@paparent.me>
Tue, 18 Sep 2012 20:12:23 +0000 (16:12 -0400)
committerPA Parent <paparent@paparent.me>
Tue, 18 Sep 2012 20:12:23 +0000 (16:12 -0400)
auf_savoirs_en_partage/chercheurs/admin.py
auf_savoirs_en_partage/chercheurs/models.py

index ea9eb26..19e0b4f 100644 (file)
@@ -6,8 +6,8 @@ from django.core.urlresolvers import reverse as url
 from django.http import HttpResponseRedirect
 from django.contrib.auth.models import User
 
-from chercheurs.models import Chercheur, ChercheurVoir, Publication, \
-                              GroupeChercheur, DomaineRecherche, \
+from chercheurs.models import Chercheur, ChercheurVoir, ChercheurInactif, \
+                              Publication, GroupeChercheur, DomaineRecherche, \
                               AdhesionGroupe, ChercheurQuerySet, \
                               AdhesionCommunaute, AdhesionDomaineRecherche, \
                               Groupe, Message
@@ -248,6 +248,25 @@ class ChercheurVoirAdmin(ChercheurAdmin):
 
 admin.site.register(ChercheurVoir, ChercheurVoirAdmin)
 
+class ChercheurInactifAdmin(ChercheurAdmin):
+
+    list_editable = []
+
+    def queryset(self, request):
+        return self.model.objects.get_query_set().filter(actif=False)
+
+    def get_object(self, request, object_id):
+        """
+        On doit réimplémenter cette méthode à cause de ce qu'on fait avec
+        ``initial`` dans la méthode queryset().
+        """
+        try:
+            return ChercheurInactif.objects.get(id=object_id)
+        except ChercheurInactif.DoesNotExist:
+            return None
+
+admin.site.register(ChercheurInactif, ChercheurInactifAdmin)
+
 
 class ChercheurAdminQuerySet(ChercheurQuerySet):
 
index 4b42160..ae989c3 100644 (file)
@@ -228,6 +228,12 @@ class ChercheurManager(SEPManager):
     def order_by_pays(self, direction=''):
         return self.get_query_set().order_by_pays(self, direction=direction)
 
+class ChercheurInactifManager(SEPManager):
+
+    def get_query_set(self):
+        return ChercheurQuerySet(self.model).filter(actif=False)
+
+
 STATUT_CHOICES = (
     ('enseignant', 'Enseignant-chercheur dans un établissement'), 
     ('etudiant', 'Étudiant-chercheur doctorant'), 
@@ -375,6 +381,14 @@ class ChercheurVoir(Chercheur):
         verbose_name = 'chercheur (visualisation)'
         verbose_name_plural = 'chercheur (visualisation)'
 
+class ChercheurInactif(Chercheur):
+    objects = ChercheurInactifManager()
+
+    class Meta:
+        proxy = True
+        verbose_name = 'chercheur (inactif)'
+        verbose_name_plural = 'chercheur (inactif)'
+
 class Publication(models.Model):
     chercheur = models.ForeignKey(Chercheur, related_name='publications')
     auteurs = models.CharField(max_length=255, blank=True, verbose_name='auteur(s)')