X-Git-Url: https://git.auf.org/?p=auf_savoirs_en_partage_django.git;a=blobdiff_plain;f=auf_savoirs_en_partage%2Fsitotheque%2Fviews.py;h=687a084a748cddb2f524b75f1a5c1ba6fd3e125f;hp=498350cfd2e098ab213ee51220e63959e1448c80;hb=b39b9367fc95ec6581c74ab8a5651561360174b9;hpb=bab65667ce40fdc647ead5a6467d902b557b85fa diff --git a/auf_savoirs_en_partage/sitotheque/views.py b/auf_savoirs_en_partage/sitotheque/views.py index 498350c..687a084 100644 --- a/auf_savoirs_en_partage/sitotheque/views.py +++ b/auf_savoirs_en_partage/sitotheque/views.py @@ -1,15 +1,49 @@ # -*- 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 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): - sites = Site.objects.all() + sites = search_queryset(request) + site_form = SiteSearchForm(request.GET) + nb_sites = sites.count() variables = { 'sites': sites, + 'site_form': site_form, + 'nb_sites': nb_sites, } return render_to_response ("sites/index.html", \ - Context (variables), + Context(variables), context_instance = RequestContext(request)) def retrieve(request, id):