web/hdalab/views/ajax.py
changeset 260 a15e8cb98525
parent 253 1113c3874dd6
--- a/web/hdalab/views/ajax.py	Mon Oct 22 17:29:58 2012 +0200
+++ b/web/hdalab/views/ajax.py	Fri Oct 26 16:14:25 2012 +0200
@@ -259,6 +259,7 @@
     max_tag_order = int(request.GET.get('mto', '12'))
     content_count = request.GET.get('contentcount', 12)
     tag_count = request.GET.get('tagcount', 30)
+    no_translate_langs = [ 'fr' ]
     
     key_parts = ("filter",lang,periode,label,country,contentlist,max_tag_order,content_count,tag_count)
     key_parts = [unicode(p).encode("utf-8") for p in key_parts]
@@ -320,12 +321,13 @@
             
             contentqs = contentqs.filter(tagcond).distinct()
             matchtagidsqs = list(Tag.objects.select_related("dbpedia_fields").only("id").filter(tagcondid))
-            matchtagids = [t.id for t in matchtagidsqs]            
-            masters = [t.dbpedia_fields for t in matchtagidsqs if t.dbpedia_fields is not None]
+            matchtagids = [t.id for t in matchtagidsqs]
             
-            translationqs = DbpediaFieldsTranslation.objects.select_related("master", "master__tag").filter(master__in = masters, language_code=lang)    
-            labeltranslations = [{'label':t.master.label, 'translated_label':t.label} for t in translationqs]
-
+            if lang not in no_translate_langs:
+                masters = [t.dbpedia_fields for t in matchtagidsqs if t.dbpedia_fields is not None]
+                
+                translationqs = DbpediaFieldsTranslation.objects.select_related("master", "master__tag").filter(master__in = masters, language_code=lang)    
+                labeltranslations = [{'label':t.master.label, 'translated_label':t.label} for t in translationqs]
             
             tagqs = tagqs.filter(datasheet__in = contentqs)
             countryqs = countryqs.filter(includes__tag__taggedsheet__datasheet__in = contentqs)
@@ -346,8 +348,11 @@
         
         qs = list(TaggedSheet.objects.select_related('tag', 'tag__dbpedia_fields').filter(datasheet__in = contentids, order__lte = max_tag_order).order_by('order'))
         
-        transqs = DbpediaFieldsTranslation.objects.filter(master__in = [ts.tag.dbpedia_fields for ts in qs], language_code = lang)
-        translations = dict([(trans.master_id,trans.label) for trans in transqs])
+        translations = {}
+        
+        if lang not in no_translate_langs:
+            transqs = DbpediaFieldsTranslation.objects.filter(master__in = [ts.tag.dbpedia_fields for ts in qs], 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
@@ -373,9 +378,10 @@
         tagqslist = list(tagqs)
         
         dbpediafields = dict([(df.tag_id, df) for df in DbpediaFields.objects.filter(tag__in = tagqslist)])
-    
-        transqs = DbpediaFieldsTranslation.objects.filter(master__in = dbpediafields.values(), language_code = lang)
-        translations = dict([(trans.master_id,trans.label) for trans in transqs])
+
+        if lang not in no_translate_langs:
+            transqs = DbpediaFieldsTranslation.objects.filter(master__in = dbpediafields.values(), language_code = lang)
+            translations = dict([(trans.master_id,trans.label) for trans in transqs])
     
         tags = [{'id': tag.id, 'label': tag.label, 'score': tag.nb, 'translated_label': translations.get(dbpediafields[tag.id].id, tag.label) if tag.id in dbpediafields else tag.label} for tag in tagqslist]
     
@@ -383,10 +389,10 @@
         countries = dict([(country.dbpedia_uri, country.nb) for country in countryqs])
     
         discqslist = list(discqs.annotate(nb=Count('taggedsheet')).order_by('-nb')[:10])
-            
-        transqs = DbpediaFieldsTranslation.objects.filter(master__in = [tag.dbpedia_fields for tag in discqslist], language_code = lang)
-        translations = dict([(trans.master_id,trans.label) for trans in transqs])
-    
+
+        if lang not in no_translate_langs:
+            transqs = DbpediaFieldsTranslation.objects.filter(master__in = [tag.dbpedia_fields for tag in discqslist], language_code = lang)
+            translations = dict([(trans.master_id,trans.label) for trans in transqs])
         
         disciplines = [{'label':tag.label,'score':tag.nb, 'translated_label': translations.get(tag.dbpedia_fields.id, tag.label) if tag.dbpedia_fields is not None else tag.label} for tag in discqslist]