Dans les formulaires de recherche, n'offrir que les pays dans la région
authorEric Mc Sween <eric.mcsween@gmail.com>
Mon, 15 Nov 2010 14:55:21 +0000 (09:55 -0500)
committerEric Mc Sween <eric.mcsween@gmail.com>
Mon, 15 Nov 2010 14:55:21 +0000 (09:55 -0500)
courante.

auf_savoirs_en_partage/chercheurs/forms.py
auf_savoirs_en_partage/chercheurs/views.py
auf_savoirs_en_partage/sitotheque/forms.py
auf_savoirs_en_partage/sitotheque/views.py

index 4eae147..8a235f1 100644 (file)
@@ -236,7 +236,13 @@ class RepertoireSearchForm (forms.Form):
     membre_instance_auf = forms.BooleanField(required=False, label="Membre d'une instance de l'AUF")
     expert_oif = forms.BooleanField(required=False, label="Expert de l'OIF")
     membre_fipf = forms.BooleanField(required=False, label="Membre de la FIPF")
-      
+
+    def __init__(self, data=None, region=None):
+        super(RepertoireSearchForm, self).__init__(data)
+        if region:
+            pays = self.fields['pays']
+            pays.queryset = pays.queryset.filter(region=region)
+
     def get_query_set(self):
         qs = Chercheur.objects.all()
         if self.is_valid():
index a5118e9..8f31799 100644 (file)
@@ -124,10 +124,9 @@ def chercheur_login(request, discipline=None, region=None):
     return render_to_response('accounts/login.html', dict(form=form),
                               context_instance=RequestContext(request))
     
-    
 def index(request, discipline=None, region=None):
     """Répertoire des chercheurs"""
-    search_form = RepertoireSearchForm(request.GET)
+    search_form = RepertoireSearchForm(request.GET, region=region)
     chercheurs = search_form.get_query_set().filter_discipline(discipline).filter_region(region)
     nb_chercheurs = chercheurs.count()
     return render_to_response("chercheurs/index.html",
index a83e36c..7aa1fbb 100644 (file)
@@ -7,6 +7,12 @@ class SiteSearchForm(forms.Form):
     mots_cles = forms.CharField (required = False, label="Rechercher dans tous les champs")
     pays = forms.ModelChoiceField(queryset=Pays.objects.all(), required=False, label="Pays", empty_label="Tous")
 
+    def __init__(self, data=None, region=None):
+        super(SiteSearchForm, self).__init__(data)
+        if region:
+            pays = self.fields['pays']
+            pays.queryset = pays.queryset.filter(region=region)
+
     def get_query_set(self):
         """Retourne l'ensemble des sites qui correspondent aux valeurs
            entrées dans le formulaire."""
index 3522531..7b0c4b0 100644 (file)
@@ -7,7 +7,7 @@ from models import Site
 from forms import SiteSearchForm
 
 def index(request, discipline=None, region=None):
-    search_form = SiteSearchForm(request.GET)
+    search_form = SiteSearchForm(request.GET, region=region)
     sites = search_form.get_query_set().filter_discipline(discipline).filter_region(region)
     search_regexp = search_form.get_search_regexp()
     nb_sites = sites.count()