q = part
else:
q = q & part
- return qs.filter(q)
+ return qs.filter(q) if q is not None else qs
def search_titre(self, text):
qs = self
q = part
else:
q = q & part
- qs = qs.filter(q).distinct()
+ if q is not None:
+ qs = qs.filter(q).distinct()
# On donne un point pour chaque mot présent dans le titre.
- score_expr = ' + '.join(['(title LIKE %s)'] * len(words))
- score_params = ['%' + word + '%' for word in words]
- return qs.extra(
- select={'score': score_expr},
- select_params=score_params
- ).order_by('-score')
+ if words:
+ score_expr = ' + '.join(['(title LIKE %s)'] * len(words))
+ score_params = ['%' + word + '%' for word in words]
+ qs = qs.extra(
+ select={'score': score_expr},
+ select_params=score_params
+ ).order_by('-score')
+
+ return qs
def search_auteur(self, text):
qs = self
# -*- encoding: utf-8 -*-
import datetime, simplejson, copy, vobject
-from django.shortcuts import render_to_response, get_object_or_404
+from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.template import Context, RequestContext
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth.decorators import login_required
# recherche
def recherche(request):
query = request.GET.get("q", "")
+ if not query.strip():
+ return redirect('/')
ressources = Record.objects.validated().search(query)
actualites = Actualite.objects.filter(visible=1).search(query)
evenements = Evenement.objects.filter(approuve=1).search(query)
q = part
else:
q = q & part
- qs = qs.filter(q).distinct()
+ if q is not None:
+ qs = qs.filter(q).distinct()
return qs
class Site(models.Model):