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