recherche par genre H/F dans le reppertoire de chercheurs
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 26 Jan 2011 21:42:58 +0000 (16:42 -0500)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 26 Jan 2011 21:42:58 +0000 (16:42 -0500)
auf_savoirs_en_partage/chercheurs/forms.py
auf_savoirs_en_partage/chercheurs/models.py

index b8bbf01..ff9a03b 100644 (file)
@@ -329,6 +329,7 @@ class RepertoireSearchForm (forms.Form):
         ('association_francophone', "Membre d'une association ou d'une société savante francophone"),
         ('reseau_institutionnel', "Membre des instances d'un réseau institutionnel de l'AUF")
     ))
+    genre = forms.ChoiceField(choices=((('', 'Tous'),) + GENRE_CHOICES), required=False, label="Genre", help_text="Homme, Femme ou les deux")
 
     def __init__(self, data=None, region=None):
         super(RepertoireSearchForm, self).__init__(data)
@@ -369,6 +370,9 @@ class RepertoireSearchForm (forms.Form):
             nord_sud = self.cleaned_data['nord_sud']
             if nord_sud:
                 chercheurs = chercheurs.filter_nord_sud(nord_sud)
+            genre = self.cleaned_data['genre']
+            if genre:
+                chercheurs = chercheurs.filter_genre(genre)
             activites_francophonie = self.cleaned_data['activites_francophonie']
             if activites_francophonie == 'instance_auf':
                 chercheurs = chercheurs.filter(membre_instance_auf=True)
index 8bc6502..a8399ec 100644 (file)
@@ -52,6 +52,9 @@ class ChercheurQuerySet(SEPQuerySet):
     def filter_nord_sud(self, nord_sud):
         return self.filter(Q(etablissement__pays__nord_sud=nord_sud) | Q(etablissement_autre_pays__nord_sud=nord_sud))
 
+    def filter_genre(self, genre):
+        return self.filter(genre=genre)
+
     def filter_statut(self, statut):
         return self.filter(statut=statut)