diff -r 6f138ba4b7e8 -r a15e8cb98525 web/hdalab/views/ajax.py --- 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]