Enlevé le critère "thématique" de la recherche dans les sites.
[auf_savoirs_en_partage_django.git] / auf_savoirs_en_partage / sitotheque / views.py
index 498350c..687a084 100644 (file)
@@ -1,15 +1,49 @@
 # -*- encoding: utf-8 -*-
 from django.shortcuts import render_to_response
 from django.template import Context, RequestContext
 # -*- encoding: utf-8 -*-
 from django.shortcuts import render_to_response
 from django.template import Context, RequestContext
+from django.db.models import Q
 
 from models import Site
 
 from models import Site
+from forms import SiteSearchForm
+
+def search_queryset(request):
+    list = Site.objects.order_by("titre")
+    pays = ""
+
+    simpleForm = SiteSearchForm(request.GET)
+    if simpleForm.is_valid ():
+        pays = simpleForm.cleaned_data["pays"]
+        if pays:
+            list = list.filter(pays = pays.pk)
+        discipline = simpleForm.cleaned_data["discipline"]
+        if discipline:
+            list = list.filter(discipline=discipline)
+
+        # XXX: On ne veut pas chercher par thématique pour l'instant
+        # thematique = simpleForm.cleaned_data["thematique"]
+        # if thematique:
+        #     list = list.filter(thematique=thematique)            
+            
+        mots_cles = simpleForm.cleaned_data["mots_cles"]
+        if mots_cles:
+            list = list.filter( Q(titre__icontains=mots_cles) 
+                               | Q(description__icontains=mots_cles)
+                               | Q(editeur__icontains=mots_cles)
+                               | Q(auteur__icontains=mots_cles)
+                               | Q(mots_cles__icontains=mots_cles) )
+    return list
+
 
 def index(request):
 
 def index(request):
-    sites = Site.objects.all()
+    sites = search_queryset(request)
+    site_form = SiteSearchForm(request.GET)
+    nb_sites = sites.count()
     variables = { 'sites': sites,
     variables = { 'sites': sites,
+                  'site_form': site_form,
+                  'nb_sites': nb_sites,
                 }
     return render_to_response ("sites/index.html", \
                 }
     return render_to_response ("sites/index.html", \
-            Context (variables), 
+            Context(variables), 
             context_instance = RequestContext(request))
             
 def retrieve(request, id):
             context_instance = RequestContext(request))
             
 def retrieve(request, id):