|
|
|
|
@ -1,7 +1,9 @@ |
|
|
|
|
import json |
|
|
|
|
from django.views.generic import DetailView, ListView |
|
|
|
|
from django.http import HttpResponse |
|
|
|
|
from models import Article |
|
|
|
|
from forms import ArticleFilterForm |
|
|
|
|
from theme.models import Tag |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -18,7 +20,10 @@ class NewsList(ListView): |
|
|
|
|
qs = qs.filter(theme__id__in=themes) |
|
|
|
|
|
|
|
|
|
tags = self.request.GET.getlist('tag') |
|
|
|
|
if u'' in tags: |
|
|
|
|
tags.remove(u'') |
|
|
|
|
if tags: |
|
|
|
|
tags = tags[0].split(',') |
|
|
|
|
qs = qs.filter(tag__id__in=tags) |
|
|
|
|
|
|
|
|
|
return qs |
|
|
|
|
@ -29,6 +34,15 @@ class NewsList(ListView): |
|
|
|
|
context = super(NewsList, self).get_context_data(object_list=self.object_list) |
|
|
|
|
if self.request.GET: |
|
|
|
|
filter_form = ArticleFilterForm(self.request.GET) |
|
|
|
|
tags = self.request.GET.getlist('tag') |
|
|
|
|
if u'' in tags: |
|
|
|
|
tags.remove(u'') |
|
|
|
|
if tags: |
|
|
|
|
tags = tags[0].split(',') |
|
|
|
|
tag_qs = Tag.objects.filter(id__in=tags) |
|
|
|
|
tags = [{'id': str(tag.id), 'text': tag.name} for tag in tag_qs] |
|
|
|
|
filter_form.fields['tag'].widget.attrs['data-predifined'] = json.dumps(tags) |
|
|
|
|
filter_form.fields['tag'].widget.attrs['value'] = '' |
|
|
|
|
else: |
|
|
|
|
filter_form = ArticleFilterForm() |
|
|
|
|
|
|
|
|
|
@ -57,6 +71,8 @@ class BlogList(ListView): |
|
|
|
|
qs = qs.filter(theme__id__in=themes) |
|
|
|
|
|
|
|
|
|
tags = self.request.GET.getlist('tag') |
|
|
|
|
if u'' in tags: |
|
|
|
|
tags.remove(u'') |
|
|
|
|
if tags: |
|
|
|
|
qs = qs.filter(tag__id__in=tags) |
|
|
|
|
|
|
|
|
|
|