equal
deleted
inserted
replaced
9 from django.db.models import Q, Count, Min |
9 from django.db.models import Q, Count, Min |
10 from django.http import HttpResponse |
10 from django.http import HttpResponse |
11 from hdabo.models import Tag, Datasheet, TaggedSheet |
11 from hdabo.models import Tag, Datasheet, TaggedSheet |
12 from hdalab.models import HdaSession, Country, TagYears, DatasheetExtras |
12 from hdalab.models import HdaSession, Country, TagYears, DatasheetExtras |
13 from hdalab.models.dataviz import DbpediaFieldsTranslation, DbpediaFields |
13 from hdalab.models.dataviz import DbpediaFieldsTranslation, DbpediaFields |
14 from hdalab.models.categories import WpCategory, WpCategoryInclusion, TagWpCategory |
14 from hdalab.models.categories import WpCategory |
15 from hdalab.utils import fix_cache_key |
15 from hdalab.utils import fix_cache_key |
16 import copy |
16 import copy |
17 import json |
17 import json |
18 import hmac |
18 import hmac |
19 import itertools |
19 import itertools |
168 |
168 |
169 if write and data: |
169 if write and data: |
170 HdaSession.objects.filter(sessionid=sessionid).update(data=json.dumps(data)) |
170 HdaSession.objects.filter(sessionid=sessionid).update(data=json.dumps(data)) |
171 else: |
171 else: |
172 data = HdaSession.objects.get(sessionid=sessionid).data |
172 data = HdaSession.objects.get(sessionid=sessionid).data |
173 data = json.loads(data) if data else {} |
173 data = json.loads(data) if data else {} |
174 |
174 |
175 resobj = {'data': data, "write_allowed" : write, "sessionid": sessionid } |
175 resobj = {'data': data, "write_allowed" : write, "sessionid": sessionid } |
176 if write: |
176 if write: |
177 resobj['sessionkey'] = request.session['sessionkey'] |
177 resobj['sessionkey'] = request.session['sessionkey'] |
178 |
178 |
239 |
239 |
240 q = request.GET.get('term',None) |
240 q = request.GET.get('term',None) |
241 |
241 |
242 # On ne récupère que les catégories qui sont également des tags |
242 # On ne récupère que les catégories qui sont également des tags |
243 qrx = '(\\m|\\b)%s'%q |
243 qrx = '(\\m|\\b)%s'%q |
244 qs = Tag.objects.filter(label__iregex=q) |
244 qs = Tag.objects.filter(label__iregex=qrx) |
245 |
245 |
246 labels = [tag.label for tag in qs] |
246 labels = [tag.label for tag in qs] |
247 |
247 |
248 qs = WpCategory.objects.annotate(nb=Count('child_categories__child_category__tags')).filter(label__in = labels, nb__gt=0) |
248 qs = WpCategory.objects.annotate(nb=Count('child_categories__child_category__tags')).filter(label__in = labels, nb__gt=0) |
249 |
249 |