Adhesion: Séparation des domaines et communauté
authorPA Parent <paparent@paparent.me>
Wed, 31 Aug 2011 00:06:41 +0000 (20:06 -0400)
committerPA Parent <paparent@paparent.me>
Wed, 31 Aug 2011 12:35:44 +0000 (08:35 -0400)
auf_savoirs_en_partage/chercheurs/admin.py
auf_savoirs_en_partage/chercheurs/models.py

index db56e07..130e1cc 100644 (file)
@@ -8,7 +8,9 @@ from django.http import HttpResponseRedirect
 
 from chercheurs.models import Chercheur, ChercheurVoir, Publication, \
                               GroupeChercheur, DomaineRecherche, \
-                              AdhesionGroupe, ChercheurQuerySet
+                              AdhesionGroupe, ChercheurQuerySet, \
+                              AdhesionCommunaute, AdhesionDomaineRecherche, \
+                              Groupe
 from chercheurs.utils import export
 from savoirs.models import Search
 
@@ -166,6 +168,13 @@ class AdhesionGroupeAdmin(admin.ModelAdmin):
     assigner_cgstatut.short_description = u'Assigner un statut'
 
 
+class AdhesionCommunauteAdmin(AdhesionGroupeAdmin):
+    pass
+
+
+class AdhesionDomaineRechercheAdmin(AdhesionGroupeAdmin):
+    pass
+
 class BaseGroupeAdmin(admin.ModelAdmin):
     fieldsets = (
         (('Options générales'), {'fields': ('nom', 'url', 'liste_diffusion',
@@ -234,5 +243,6 @@ admin.site.register(Chercheur, ChercheurAdmin)
 admin.site.register(Publication, PublicationAdmin)
 admin.site.register(GroupeChercheur, GroupeChercheurAdmin)
 admin.site.register(DomaineRecherche, DomaineRechercheAdmin)
-admin.site.register(AdhesionGroupe, AdhesionGroupeAdmin)
+admin.site.register(AdhesionCommunaute, AdhesionCommunauteAdmin)
+admin.site.register(AdhesionDomaineRecherche, AdhesionDomaineRechercheAdmin)
 
index 75c9fc1..56927f7 100644 (file)
@@ -460,6 +460,14 @@ CG_STATUT_CHOICES = (
     ('exclus', 'Exclus'),
 )
 
+class AdhesionCommunauteManager(GroupeManager):
+    def get_query_set(self):
+        return super(AdhesionCommunauteManager, self).get_query_set().filter(groupe__groupe_chercheur=True)
+
+class AdhesionDomaineRechercheManager(GroupeManager):
+    def get_query_set(self):
+        return super(AdhesionDomaineRechercheManager, self).get_query_set().filter(groupe__groupe_chercheur=False)
+
 class AdhesionGroupe(models.Model):
     id = models.AutoField(primary_key=True, db_column='id')
     chercheur = models.ForeignKey('Chercheur', db_column='chercheur')
@@ -476,6 +484,22 @@ class AdhesionGroupe(models.Model):
     def __unicode__(self):
         return u"%s - %s" % (self.chercheur, self.groupe)
 
+class AdhesionCommunaute(AdhesionGroupe):
+    objects = AdhesionCommunauteManager()
+
+    class Meta:
+        proxy = True
+        verbose_name = 'adhésion aux communautés de chercheurs'
+        verbose_name_plural = 'adhésion aux communautés de chercheurs'
+
+class AdhesionDomaineRecherche(AdhesionGroupe):
+    objects = AdhesionDomaineRechercheManager()
+
+    class Meta:
+        proxy = True
+        verbose_name = 'adhésion aux domaines de recherche'
+        verbose_name_plural = 'adhésion aux domaines de recherche'
+
 class ChercheurSearch(Search):
     nom_chercheur = models.CharField(max_length=100, blank=True, verbose_name='nom')
     domaine = models.ForeignKey(DomaineRecherche, blank=True, null=True, verbose_name='domaine de recherche')