src/jocondelab/views/ajax.py
changeset 108 c0d227e8b0c4
parent 106 219e27e5e26d
child 110 597fa9d09973
--- a/src/jocondelab/views/ajax.py	Wed Sep 11 17:52:17 2013 +0200
+++ b/src/jocondelab/views/ajax.py	Mon Sep 16 10:38:08 2013 +0200
@@ -19,7 +19,7 @@
     lang = request.GET.get('lang', request.LANGUAGE_CODE)[:2]
     q = request.GET.get('term', None)
     count = request.GET.get('count', 20)
-    qs = DbpediaFields.objects.filter(language_code=lang,label__istartswith=q).values('dbpedia_uri','label').distinct().order_by('label')[:count]
+    qs = DbpediaFields.objects.filter(language_code=lang,label__icontains=q).values('dbpedia_uri','label').distinct().order_by('label')[:count]
     res = [{"dbpedia_uri": r['dbpedia_uri'], "label": r['label']} for r in qs]
     return HttpResponse(content=json.dumps(res), mimetype='application/json')
 
@@ -91,7 +91,7 @@
     q = request.GET.get('term', None)
     count = request.GET.get('count', 20)
     
-    qs = DbpediaGeo.objects.filter(term__dbpedia_fields__language_code=lang, term__dbpedia_fields__label__istartswith=q)
+    qs = DbpediaGeo.objects.filter(term__dbpedia_fields__language_code=lang, term__dbpedia_fields__label__icontains=q)
     qs = qs.values('latitude','longitude','term__dbpedia_fields__label','term__dbpedia_uri')
     qs = qs.annotate(sum_notices=Sum('term__nb_notice')).order_by('-sum_notices')[:count]
     
@@ -114,7 +114,7 @@
     thesaurus_label = request.POST.get('thesaurus_label', None)
     translations = json.loads(request.POST.get('translations', '[]'))
     
-    thobj = Thesaurus.objects.get(label=thesaurus_label)
+    thobj = Thesaurus.objects.get(label=thesaurus_label) if thesaurus_label else None
     notobj = Notice.objects.get(id=notice_id)
     termobj, created = ContributedTerm.objects.get_or_create(dbpedia_uri=dbpedia_uri, dbpedia_language=dbpedia_language)
     controbj, created = Contribution.objects.get_or_create(term=termobj, thesaurus=thobj, notice=notobj, defaults={'contribution_count': 1})
@@ -129,5 +129,22 @@
             fieldsobj.label = t['label']
             fieldsobj.save()
 
-    return HttpResponse(content=json.dumps(translations), mimetype='application/json')
+    return HttpResponse(content=json.dumps({ "contribution_id": controbj.id, "contribution_count": controbj.contribution_count }), mimetype='application/json')
+
+def contribution_vote(request, grade):
+    
+    contribution_id = request.POST.get('contribution_id', None)
+    controbj = ContributedTerm.objects.get(id=contribution_id)
+    controbj.contribution_count += grade
+    controbj.save()
+    
+    return HttpResponse(content=json.dumps({ "contribution_id": controbj.id, "contribution_count": controbj.contribution_count }), mimetype='application/json')
+
+def upvote(request):
+    
+    return contribution_vote(1)
+
+def downvote(request):
+    
+    return contribution_vote(-1)
     
\ No newline at end of file