src/hdalab/views/ajax.py
changeset 279 177b508612f4
parent 272 1c774f7a0341
child 280 56d84b0c267f
--- a/src/hdalab/views/ajax.py	Thu Jun 19 12:47:41 2014 +0200
+++ b/src/hdalab/views/ajax.py	Fri Jun 20 13:10:39 2014 +0200
@@ -19,6 +19,9 @@
 import itertools
 import uuid
 
+import logging
+logger = logging.getLogger(__name__)
+
 def tagtranslation(request):
     
     lang = request.GET.get('lang',request.LANGUAGE_CODE)
@@ -350,16 +353,22 @@
         
         translations = {}
         
+        logger.debug("ICI 0")
         if lang not in no_translate_langs:
-            transqs = DbpediaFieldsTranslation.objects.filter(master__in = [ts.tag.dbpedia_fields for ts in qs], language_code = lang)
+            ts_list = []
+            for ts in qs:
+                if hasattr(ts, 'tag') and hasattr(ts.tag, 'dbpedia_fields') :
+                    ts_list.append(ts.tag.dbpedia_fields)
+            transqs = DbpediaFieldsTranslation.objects.filter(master__in = ts_list, language_code = lang)
             translations = dict([(trans.master_id,trans.label) for trans in transqs])
         
         for ts in qs:
-            match_tag = ts.tag.id in matchtagids
-            contenus[ts.datasheet_id]['tags'].append({'id': ts.tag.id, 'label':ts.tag.label, 'order':ts.order, 'match': match_tag , 'translated_label': translations.get(ts.tag.dbpedia_fields.id, ts.tag.label) if ts.tag.dbpedia_fields is not None else ts.tag.label})
-            
-            if match_tag:
-                contenus[ts.datasheet_id]['score'] += 2*max_tag_order - ts.order
+            if hasattr(ts, 'tag') and hasattr(ts.tag, 'dbpedia_fields') :
+                match_tag = ts.tag.id in matchtagids
+                contenus[ts.datasheet_id]['tags'].append({'id': ts.tag.id, 'label':ts.tag.label, 'order':ts.order, 'match': match_tag , 'translated_label': translations.get(ts.tag.dbpedia_fields.id, ts.tag.label) if ts.tag.dbpedia_fields is not None else ts.tag.label})
+                
+                if match_tag:
+                    contenus[ts.datasheet_id]['score'] += 2*max_tag_order - ts.order
             
         if contentlist is None:
             contenus = sorted(contenus.values(),key=lambda e: -e['score'])