escape regex and other data consolidation
authorymh <ymh.work@gmail.com>
Tue, 28 Jan 2014 13:51:16 +0100
changeset 316 b5d6eff78369
parent 315 48fe43ad4288
child 317 438b80fe3d7b
escape regex and other data consolidation
src/jocondelab/views/ajax.py
src/jocondelab/views/front_office.py
--- 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():