You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

59 lines
2.3 KiB

import json
from django.http import HttpResponse
from theme.models import Tag
def get_tag(request):
#if request.is_ajax():
themes = request.GET.getlist('themes[]')
term = request.GET['term'].capitalize()
qs = Tag.objects.language().distinct()
if term:
qs = qs.filter(translations__name__contains=term)[:20]
if themes:
qs = qs.filter(theme__id__in=themes).order_by('translations__name')[:20]
result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs]
result = sorted(result, key=lambda x:x['label'])
return HttpResponse(json.dumps(result), content_type='application/json')
#else:
# return HttpResponse('not ajax')
def get_article_tags(request):
term = request.GET['term'].capitalize()
qs = Tag.objects.language().exclude(article=None).filter(article__type=1).distinct()
if term:
qs = qs.filter(translations__name__contains=term)
result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs[:20]]
result = sorted(result, key=lambda x:x['label'])
return HttpResponse(json.dumps(result), content_type='application/json')
def get_news_tags(request):
themes = request.GET.getlist('themes[]')
term = request.GET['term'].capitalize()
qs = Tag.objects.language().exclude(article=None).filter(article__type=2).distinct()
if term:
qs = qs.filter(translations__name__contains=term)[:20]
if themes:
qs = qs.filter(theme__id__in=themes).order_by('translations__name')[:20]
result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs]
result = sorted(result, key=lambda x:x['label'])
return HttpResponse(json.dumps(result), content_type='application/json')
def get_news_tags(request):
themes = request.GET.getlist('themes[]')
term = request.GET['term'].capitalize()
qs = Tag.objects.language().exclude(article=None).filter(article__type=2).distinct()
if term:
qs = qs.filter(translations__name__contains=term)
if themes:
qs = qs.filter(theme__id__in=themes).order_by('translations__name')
result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs]
result = sorted(result, key=lambda x:x['label'])
return HttpResponse(json.dumps(result), content_type='application/json')