diff -r e8855ddc1851 -r 177b508612f4 src/hdalab/views/ajax.py --- 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'])