Merged from develop

remotes/origin/1203
Nazar Kotjuk 10 years ago
parent 4147bd001b
commit 639a3edd84
  1. 8
      article/forms.py
  2. 10
      article/views.py

@ -266,7 +266,7 @@ class BlogForm(forms.ModelForm):
class ArticleFilterForm(forms.Form): class ArticleFilterForm(forms.Form):
theme = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False, theme = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False,
choices=[(item.id, item.name) for item in ThemeBlog.objects.language().distinct()]) choices=[(item.id, item.name) for item in Theme.objects.language().distinct()])
tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False) tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False)
''' '''
@ -290,7 +290,7 @@ class BlogFilterForm(forms.Form):
create dynamical translated fields fields create dynamical translated fields fields
""" """
super(BlogFilterForm, self).__init__(*args, **kwargs) super(BlogFilterForm, self).__init__(*args, **kwargs)
ids = [item['theme'] for item in list(Article.objects.blogs().values('theme').distinct())] ids = set([item['blog_theme'] for item in list(Article.objects.blogs().filter(blog_theme__isnull=False).values('blog_theme'))])
self.fields['theme'] = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False, self.fields['theme'] = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False,
choices=[(item.id, item.name) for item in ThemeBlog.objects.language().filter(id__in=ids)]) choices=[(item.id, item.name) for item in ThemeBlog.objects.language().filter(id__in=ids)])
@ -303,6 +303,6 @@ class NewsFilterForm(forms.Form):
create dynamical translated fields fields create dynamical translated fields fields
""" """
super(NewsFilterForm, self).__init__(*args, **kwargs) super(NewsFilterForm, self).__init__(*args, **kwargs)
ids = [item['theme'] for item in list(Article.objects.news().values('theme').distinct())] ids = set([item['theme'] for item in list(Article.objects.news().values('theme'))])
self.fields['theme'] = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False, self.fields['theme'] = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False,
choices=[(item.id, item.name) for item in Theme.objects.language().exclude(article__id=None).filter(id__in=ids)]) choices=[(item.id, item.name) for item in Theme.objects.language().filter(id__in=ids)])

@ -4,7 +4,7 @@ from django.views.generic import DetailView
from functions.custom_views import ListView from functions.custom_views import ListView
from django.http import HttpResponse from django.http import HttpResponse
from models import Article from models import Article
from forms import ArticleFilterForm from forms import ArticleFilterForm, BlogFilterForm, NewsFilterForm
from theme.models import Tag, Theme, ThemeBlog from theme.models import Tag, Theme, ThemeBlog
from meta.views import MetadataMixin from meta.views import MetadataMixin
@ -37,7 +37,7 @@ class NewsList(MetadataMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(NewsList, self).get_context_data(object_list=self.object_list) context = super(NewsList, self).get_context_data(object_list=self.object_list)
if self.request.GET: if self.request.GET:
filter_form = ArticleFilterForm(self.request.GET) filter_form = NewsFilterForm(self.request.GET)
tags = self.request.GET.getlist('tag') tags = self.request.GET.getlist('tag')
if u'' in tags: if u'' in tags:
tags.remove(u'') tags.remove(u'')
@ -48,7 +48,7 @@ class NewsList(MetadataMixin, ListView):
filter_form.fields['tag'].widget.attrs['data-predifined'] = json.dumps(tags) filter_form.fields['tag'].widget.attrs['data-predifined'] = json.dumps(tags)
filter_form.fields['tag'].widget.attrs['value'] = '' filter_form.fields['tag'].widget.attrs['value'] = ''
else: else:
filter_form = ArticleFilterForm() filter_form = NewsFilterForm()
context['article_filter_form'] = filter_form context['article_filter_form'] = filter_form
return context return context
@ -87,7 +87,7 @@ class BlogList(MetadataMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(BlogList, self).get_context_data(object_list=self.object_list) context = super(BlogList, self).get_context_data(object_list=self.object_list)
if self.request.GET: if self.request.GET:
filter_form = ArticleFilterForm(self.request.GET) filter_form = BlogFilterForm(self.request.GET)
tags = self.request.GET.getlist('tag') tags = self.request.GET.getlist('tag')
if u'' in tags: if u'' in tags:
tags.remove(u'') tags.remove(u'')
@ -98,7 +98,7 @@ class BlogList(MetadataMixin, ListView):
filter_form.fields['tag'].widget.attrs['data-predifined'] = json.dumps(tags) filter_form.fields['tag'].widget.attrs['data-predifined'] = json.dumps(tags)
filter_form.fields['tag'].widget.attrs['value'] = '' filter_form.fields['tag'].widget.attrs['value'] = ''
else: else:
filter_form = ArticleFilterForm() filter_form = BlogFilterForm()
context['article_filter_form'] = filter_form context['article_filter_form'] = filter_form
return context return context

Loading…
Cancel
Save