src/jocondelab/views/ajax.py
changeset 127 a50e4ee7fcf2
parent 123 11f2aa317b70
child 146 b5ce341745e3
--- a/src/jocondelab/views/ajax.py	Fri Sep 27 17:22:22 2013 +0200
+++ b/src/jocondelab/views/ajax.py	Fri Sep 27 19:12:00 2013 +0200
@@ -132,29 +132,28 @@
     def post(self, request):
         
         notice_id = request.POST.get('notice_id', None)
-        dbpedia_language = request.POST.get('dbpedia_language', None)
-        dbpedia_uri = request.POST.get('dbpedia_uri', None)
+        lang = request.LANGUAGE_CODE[:2]
+        dbpedia_uri = request.POST.get('dbpedia_uri', None) #TODO: Remove it and regenerate from Wikipedia/Dbpedia
         thesaurus_label = request.POST.get('thesaurus_label', None)
-        translations = json.loads(request.POST.get('translations', '[]'))
+        label = request.POST.get('label', None)
         
         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)
+        
+        # Contributed Term should be validated and Dbpedia uris should be regenerated by SPARQL Queries
+        
+        termobj, created = ContributedTerm.objects.get_or_create(dbpedia_uri=dbpedia_uri)
         controbj, created = Contribution.objects.get_or_create(term=termobj, thesaurus=thobj, notice=notobj, defaults={'contribution_count': 1})
         if not created:
             controbj.contribution_count += 1
             controbj.save()
-        for t in translations:
-            abstract = t.get('abstract', None)
-            thumbnail = t.get('thumbnail', None)
-            label = t['label']
-            language = t.get('language',request.LANGUAGE_CODE[:2])
-            fieldsobj, created = ContributedFields.objects.get_or_create(term=termobj, dbpedia_uri=dbpedia_uri, language_code=language, defaults={'abstract': abstract, 'label': label, 'thumbnail': thumbnail})
-            if not created:
-                fieldsobj.abstract = abstract
-                fieldsobj.thumbnail = thumbnail
-                fieldsobj.label = label
-                fieldsobj.save()
+        
+        # Translated labels should also be regenerated from dbpedia.
+        
+        fieldsobj, created = ContributedFields.objects.get_or_create(term=termobj, dbpedia_uri=dbpedia_uri, language_code=lang, defaults={'label': label})
+        if not created:
+            fieldsobj.label = label
+            fieldsobj.save()
         return self.render_contribution(controbj, request)