Recherche de chercheurs par pays, région, nord/sud.
authorEric Mc Sween <eric.mcsween@gmail.com>
Thu, 4 Nov 2010 16:21:54 +0000 (12:21 -0400)
committerEric Mc Sween <eric.mcsween@gmail.com>
Thu, 4 Nov 2010 16:21:54 +0000 (12:21 -0400)
auf_savoirs_en_partage/chercheurs/forms.py
auf_savoirs_en_partage/templates/chercheurs/rechercher.html

index 7577de8..e3c84da 100644 (file)
@@ -176,7 +176,9 @@ class RepertoireSearchForm (forms.Form):
     discipline = forms.ModelChoiceField(queryset=Discipline.objects.all(), required=False, label="Discipline", empty_label="Tous")
     domaine = forms.ModelChoiceField(queryset=Groupe.objects.all(), required=False, label="Domaine de recherche", empty_label="Tous")
     statut = forms.ChoiceField(choices=(('','Tous'),)+STATUT_CHOICES+(('expert','Expert'),), required=False, label="Statut")
-    pays = forms.ModelChoiceField(queryset=Pays.objects.all().order_by("nom"), required=False, label="Localisation", empty_label="Tous")
+    pays = forms.ModelChoiceField(queryset=Pays.objects.all(), required=False, label="Pays", empty_label="Tous")
+    region = forms.ModelChoiceField(queryset=Region.objects.all(), required=False, label="Région", empty_label="Toutes")
+    nord_sud = forms.ChoiceField(choices=(('', 'Tous'), ('Nord', 'Nord'), ('Sud', 'Sud')), required=False, label="Nord/Sud")
       
     def get_query_set(self):
         qs = Chercheur.objects.all()
@@ -184,9 +186,6 @@ class RepertoireSearchForm (forms.Form):
             nom = self.cleaned_data['nom']
             if nom:
                 qs = qs.search_nom(nom)
-            pays = self.cleaned_data["pays"]
-            if pays:
-                qs = qs.filter(Q(etablissement__pays = pays.pk) | Q(etablissement_autre_pays = pays.pk))
             discipline = self.cleaned_data["discipline"]
             if discipline:
                 qs = qs.filter(discipline=discipline)
@@ -202,6 +201,15 @@ class RepertoireSearchForm (forms.Form):
                     qs = qs.exclude(expertise=None)
                 else:
                     qs = qs.filter(statut=statut)
+            pays = self.cleaned_data["pays"]
+            if pays:
+                qs = qs.filter(Q(etablissement__pays=pays) | Q(etablissement_autre_pays=pays))
+            region = self.cleaned_data['region']
+            if region:
+                qs = qs.filter(Q(etablissement__pays__region=region) | Q(etablissement_autre_pays__region=region))
+            nord_sud = self.cleaned_data['nord_sud']
+            if nord_sud:
+                qs = qs.filter(Q(etablissement__pays__nord_sud=nord_sud) | Q(etablissement_autre_pays__nord_sud=nord_sud))
         return qs
     
 class SendPasswordForm(forms.Form):
index 0139a73..a77da0e 100644 (file)
@@ -9,7 +9,7 @@
 <form method="get" action="" class="contenu-wrapper">
     <table id="repertoire_recherche">
     {{repertoire_form.as_table}}
-    <tr><td colspan="2" class="Lib"><input type="submit" class="bouton" value="Rechercher" /></td></tr>
+    <tr><th></th><td><input type="submit" class="bouton" value="Rechercher" /></td></tr>
     </table>
 </form>