web/hdalab/views/ajax.py
changeset 150 b0a34ce6fdcf
parent 135 dd6578e36a57
child 152 e2ceeb903de6
equal deleted inserted replaced
149:e1bed43f3a1b 150:b0a34ce6fdcf
    48         wikipedia_label = resobj['translated_label']
    48         wikipedia_label = resobj['translated_label']
    49     else:
    49     else:
    50         wikipedia_label = label
    50         wikipedia_label = label
    51     wikipedia_label = wikipedia_label[0].capitalize() + wikipedia_label[1:]
    51     wikipedia_label = wikipedia_label[0].capitalize() + wikipedia_label[1:]
    52     resobj["wikipedia_url"] = "http://%s.wikipedia.org/wiki/%s" % (request.LANGUAGE_CODE,wikipedia_label.replace(' ', '_'))
    52     resobj["wikipedia_url"] = "http://%s.wikipedia.org/wiki/%s" % (request.LANGUAGE_CODE,wikipedia_label.replace(' ', '_'))
    53 
    53 # We don't use links at the moment, so I'll comment this line to speed up requests
    54     resobj["links"] = [{'subject':tl.subject.label, 'object':tl.object.label} for tl in TagLinks.objects.select_related().filter(Q(subject__label__iexact = label) | Q(object__label__iexact = label))]
    54 #    resobj["links"] = [{'subject':tl.subject.label, 'object':tl.object.label} for tl in TagLinks.objects.select_related().filter(Q(subject__label__iexact = label) | Q(object__label__iexact = label))]
    55 
    55 
    56     return HttpResponse(content=json.dumps(resobj), mimetype='application/json')
    56     return HttpResponse(content=json.dumps(resobj), mimetype='application/json')
    57 
    57 
    58 
    58 
    59 def tagtranslation(request):
    59 def tagtranslation(request):
   123 
   123 
   124 
   124 
   125 def tagsearch(request):
   125 def tagsearch(request):
   126     
   126     
   127     q = request.GET.get('term',None)
   127     q = request.GET.get('term',None)
   128     qs = Tag.objects.filter(label__icontains = q) if q else Tag.objects.all()        
   128     if q:
   129     res = qs.annotate(nb=Count('datasheet')).order_by('-nb')[:20]
   129         lq = q.lower()
   130     
   130     qs = Tag.objects.filter( Q(label__icontains = q ) | Q(dbpedia_fields__translations__label__icontains = q, dbpedia_fields__translations__language_code=request.LANGUAGE_CODE)) if q else Tag.objects.all()        
   131     return HttpResponse(content=json.dumps([{'label':t.label,'nb':t.nb} for t in res]), mimetype='application/json')
   131     qs = qs.annotate(nb=Count('datasheet')).order_by('-nb')[:20]
       
   132     res = []
       
   133     
       
   134     for t in qs:
       
   135         resobj = {'value':t.label,'nb':t.nb}
       
   136         transqs = DbpediaFieldsTranslation.objects.filter(master__tag = t, language_code=request.LANGUAGE_CODE)[0:1]
       
   137         if transqs:
       
   138             resobj['label'] = transqs.get().label
       
   139         else:
       
   140             resobj['label'] = t.label
       
   141         if q is None or resobj['label'].lower().find(lq) != -1:
       
   142             res.append(resobj)
       
   143     
       
   144     return HttpResponse(content=json.dumps(res), mimetype='application/json')
   132 
   145 
   133 
   146 
   134 def filter(request):
   147 def filter(request):
   135     periode = request.GET.get('period',None)
   148     periode = request.GET.get('period',None)
   136     label = request.GET.get('label', None)
   149     label = request.GET.get('label', None)