From 62eece34135f1ff5bf8b58d025dd2287c2e5c3b2 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween Date: Thu, 4 Nov 2010 12:21:54 -0400 Subject: [PATCH] =?utf8?q?Recherche=20de=20chercheurs=20par=20pays,=20r=C3=A9?= =?utf8?q?gion,=20nord/sud.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- auf_savoirs_en_partage/chercheurs/forms.py | 16 ++++++++++++---- .../templates/chercheurs/rechercher.html | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/auf_savoirs_en_partage/chercheurs/forms.py b/auf_savoirs_en_partage/chercheurs/forms.py index 7577de8..e3c84da 100644 --- a/auf_savoirs_en_partage/chercheurs/forms.py +++ b/auf_savoirs_en_partage/chercheurs/forms.py @@ -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): diff --git a/auf_savoirs_en_partage/templates/chercheurs/rechercher.html b/auf_savoirs_en_partage/templates/chercheurs/rechercher.html index 0139a73..a77da0e 100644 --- a/auf_savoirs_en_partage/templates/chercheurs/rechercher.html +++ b/auf_savoirs_en_partage/templates/chercheurs/rechercher.html @@ -9,7 +9,7 @@
{{repertoire_form.as_table}} - +
-- 1.7.10.4