--- a/src/jocondelab/views/ajax.py Fri Jan 24 17:46:14 2014 +0100
+++ b/src/jocondelab/views/ajax.py Tue Jan 28 13:51:16 2014 +0100
@@ -14,6 +14,7 @@
from django.http.response import HttpResponseBadRequest
from django.views.generic import TemplateView
import requests
+import re
from core.models import Notice, Thesaurus
from jocondelab.models import (DbpediaYears, DbpediaGeo, DbpediaFields,
@@ -29,7 +30,7 @@
count = request.GET.get('count', 20)
qs = DbpediaFields.objects.filter(term__nb_illustrated_notice__gt=0,language_code=lang)
if lang in [ "fr", "en", "de", "it", "es", "pt", "ca", "br", "eu", "oc" ]:
- qs = qs.filter(label__iregex=r"\y%s"%q)
+ qs = qs.filter(label__iregex=r"\y%s"%re.escape(q))
else:
qs = qs.filter(label__icontains=q)
qs = qs.values('dbpedia_uri','label').distinct().order_by('label')[:count]
@@ -136,7 +137,9 @@
return self.render_to_response({"term": termdict})
def get(self, request):
- contribution_id = int(request.GET.get('contribution_id', None))
+ contribution_id = int(request.GET.get('contribution_id', 0))
+ if not contribution_id:
+ return HttpResponseBadRequest("Wrong contribution id")
return self.render_contribution(Contribution.objects.get(pk=contribution_id), request)
class ContributeView(BaseContributionView):
--- a/src/jocondelab/views/front_office.py Fri Jan 24 17:46:14 2014 +0100
+++ b/src/jocondelab/views/front_office.py Tue Jan 28 13:51:16 2014 +0100
@@ -142,7 +142,7 @@
fields_hash = {}
for fields in fs:
fields_hash.setdefault(fields.dbpedia_uri, set()).add(fields.term_id)
- uri_cache.update(dict([(fields.label.lower(), fields.dbpedia_uri) for fields in fs]))
+ uri_cache.update(dict([(fields.label.lower() if fields.label else "", fields.dbpedia_uri) for fields in fs]))
if page == 1 and len(dbpedia_uris) == 1 and len(fs) > 0:
context["wkinfo"] = fs[0]
for term_ids in fields_hash.values():