Prendre en compte les changements au champ de recherche textuelle lorsqu'on
authorEric Mc Sween <eric.mcsween@gmail.com>
Mon, 15 Nov 2010 22:52:48 +0000 (17:52 -0500)
committerEric Mc Sween <eric.mcsween@gmail.com>
Mon, 15 Nov 2010 22:52:48 +0000 (17:52 -0500)
choisit une nouvelle discipline/région.

auf_savoirs_en_partage/media/js/sep.js
auf_savoirs_en_partage/savoirs/views.py

index b9558dd..f8c91d2 100644 (file)
             $(this).val(getTimezoneName())
         })
 
+        // S'assurer qu'on tient compte de ce qui se trouve dans le champ de
+        // recherche par mots-clés lorsqu'on choisit une région ou une
+        // discipline.
+        $('#col-menu a').click(function() {
+            var href = this.href
+            var pos = href.indexOf('?')
+            if (pos != -1) {
+                href = href.substring(0, pos)
+            }
+            var query = $('#fRecherche input[name=q]').val();
+            if (query) {
+                if (href.search(/\/recherche\/?/) == -1) {
+                    href += 'recherche/';
+                }
+                href += '?q=' + query;
+            }
+            window.location = href;
+            return false;
+        });
+
     });
 
 })();
index e042889..8f41b6e 100644 (file)
@@ -58,7 +58,16 @@ def legal(request):
 def recherche(request, discipline=None, region=None):
     query = request.GET.get("q", "")
     if not query.strip():
-        return redirect('/')
+        
+        # Si on n'a pas de recherche par mots-clés, on redirige vers
+        # l'accueil.
+        kwargs = {}
+        if discipline:
+            kwargs['discipline'] = discipline
+        if region:
+            kwargs['region'] = region
+        return HttpResponseRedirect(reverse('savoirs.views.index', kwargs=kwargs))
+
     ressources = Record.objects.validated().filter_discipline(discipline).filter_region(region).search(query)
     actualites = Actualite.objects.filter(visible=1).filter_discipline(discipline).filter_region(region).search(query)
     evenements = Evenement.objects.filter(approuve=1).filter_discipline(discipline).filter_region(region).search(query)