src/hdalab/views/ajax.py
changeset 279 177b508612f4
parent 272 1c774f7a0341
child 280 56d84b0c267f
equal deleted inserted replaced
278:e8855ddc1851 279:177b508612f4
    16 import copy
    16 import copy
    17 import django.utils.simplejson as json
    17 import django.utils.simplejson as json
    18 import hmac
    18 import hmac
    19 import itertools
    19 import itertools
    20 import uuid
    20 import uuid
       
    21 
       
    22 import logging
       
    23 logger = logging.getLogger(__name__)
    21 
    24 
    22 def tagtranslation(request):
    25 def tagtranslation(request):
    23     
    26     
    24     lang = request.GET.get('lang',request.LANGUAGE_CODE)
    27     lang = request.GET.get('lang',request.LANGUAGE_CODE)
    25     labels = request.GET.get('labels',None)
    28     labels = request.GET.get('labels',None)
   348         
   351         
   349         qs = list(TaggedSheet.objects.select_related('tag', 'tag__dbpedia_fields').filter(datasheet__in = contentids, order__lte = max_tag_order).order_by('order'))
   352         qs = list(TaggedSheet.objects.select_related('tag', 'tag__dbpedia_fields').filter(datasheet__in = contentids, order__lte = max_tag_order).order_by('order'))
   350         
   353         
   351         translations = {}
   354         translations = {}
   352         
   355         
       
   356         logger.debug("ICI 0")
   353         if lang not in no_translate_langs:
   357         if lang not in no_translate_langs:
   354             transqs = DbpediaFieldsTranslation.objects.filter(master__in = [ts.tag.dbpedia_fields for ts in qs], language_code = lang)
   358             ts_list = []
       
   359             for ts in qs:
       
   360                 if hasattr(ts, 'tag') and hasattr(ts.tag, 'dbpedia_fields') :
       
   361                     ts_list.append(ts.tag.dbpedia_fields)
       
   362             transqs = DbpediaFieldsTranslation.objects.filter(master__in = ts_list, language_code = lang)
   355             translations = dict([(trans.master_id,trans.label) for trans in transqs])
   363             translations = dict([(trans.master_id,trans.label) for trans in transqs])
   356         
   364         
   357         for ts in qs:
   365         for ts in qs:
   358             match_tag = ts.tag.id in matchtagids
   366             if hasattr(ts, 'tag') and hasattr(ts.tag, 'dbpedia_fields') :
   359             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})
   367                 match_tag = ts.tag.id in matchtagids
   360             
   368                 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})
   361             if match_tag:
   369                 
   362                 contenus[ts.datasheet_id]['score'] += 2*max_tag_order - ts.order
   370                 if match_tag:
       
   371                     contenus[ts.datasheet_id]['score'] += 2*max_tag_order - ts.order
   363             
   372             
   364         if contentlist is None:
   373         if contentlist is None:
   365             contenus = sorted(contenus.values(),key=lambda e: -e['score'])
   374             contenus = sorted(contenus.values(),key=lambda e: -e['score'])
   366         else:
   375         else:
   367             contenus = contenus.values()
   376             contenus = contenus.values()