# HG changeset patch # User veltr # Date 1331572014 -3600 # Node ID b0a34ce6fdcf6c6622552a5d9d5301edef425eff # Parent e1bed43f3a1bbc699eda574adbedbfd9e515f216 Added multilingual possibilities to tagsearch view diff -r e1bed43f3a1b -r b0a34ce6fdcf web/hdalab/static/hdalab/js/gomina.js --- a/web/hdalab/static/hdalab/js/gomina.js Mon Mar 12 17:19:02 2012 +0100 +++ b/web/hdalab/static/hdalab/js/gomina.js Mon Mar 12 18:06:54 2012 +0100 @@ -779,7 +779,7 @@ source: gomNs.urls['tag_search'], minLength: 2, select: function( event, ui ) { - tagInfo(ui.item.label); + tagInfo(ui.item.value); return false; } }).addClass("grise") diff -r e1bed43f3a1b -r b0a34ce6fdcf web/hdalab/views/ajax.py --- a/web/hdalab/views/ajax.py Mon Mar 12 17:19:02 2012 +0100 +++ b/web/hdalab/views/ajax.py Mon Mar 12 18:06:54 2012 +0100 @@ -50,8 +50,8 @@ wikipedia_label = label wikipedia_label = wikipedia_label[0].capitalize() + wikipedia_label[1:] resobj["wikipedia_url"] = "http://%s.wikipedia.org/wiki/%s" % (request.LANGUAGE_CODE,wikipedia_label.replace(' ', '_')) - - 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))] +# We don't use links at the moment, so I'll comment this line to speed up requests +# 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))] return HttpResponse(content=json.dumps(resobj), mimetype='application/json') @@ -125,10 +125,23 @@ def tagsearch(request): q = request.GET.get('term',None) - qs = Tag.objects.filter(label__icontains = q) if q else Tag.objects.all() - res = qs.annotate(nb=Count('datasheet')).order_by('-nb')[:20] + if q: + lq = q.lower() + 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() + qs = qs.annotate(nb=Count('datasheet')).order_by('-nb')[:20] + res = [] - return HttpResponse(content=json.dumps([{'label':t.label,'nb':t.nb} for t in res]), mimetype='application/json') + for t in qs: + resobj = {'value':t.label,'nb':t.nb} + transqs = DbpediaFieldsTranslation.objects.filter(master__tag = t, language_code=request.LANGUAGE_CODE)[0:1] + if transqs: + resobj['label'] = transqs.get().label + else: + resobj['label'] = t.label + if q is None or resobj['label'].lower().find(lq) != -1: + res.append(resobj) + + return HttpResponse(content=json.dumps(res), mimetype='application/json') def filter(request):