--- 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