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):
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)
'''
@ -290,7 +290,7 @@ class BlogFilterForm(forms.Form):
create dynamical translated fields fields
"""
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,
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
"""
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,
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 django.http import HttpResponse
from models import Article
from forms import ArticleFilterForm
from forms import ArticleFilterForm, BlogFilterForm, NewsFilterForm
from theme.models import Tag, Theme, ThemeBlog
from meta.views import MetadataMixin
@ -37,7 +37,7 @@ class NewsList(MetadataMixin, ListView):
def get_context_data(self, **kwargs):
context = super(NewsList, self).get_context_data(object_list=self.object_list)
if self.request.GET:
filter_form = ArticleFilterForm(self.request.GET)
filter_form = NewsFilterForm(self.request.GET)
tags = self.request.GET.getlist('tag')
if u'' in tags:
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['value'] = ''
else:
filter_form = ArticleFilterForm()
filter_form = NewsFilterForm()
context['article_filter_form'] = filter_form
return context
@ -87,7 +87,7 @@ class BlogList(MetadataMixin, ListView):
def get_context_data(self, **kwargs):
context = super(BlogList, self).get_context_data(object_list=self.object_list)
if self.request.GET:
filter_form = ArticleFilterForm(self.request.GET)
filter_form = BlogFilterForm(self.request.GET)
tags = self.request.GET.getlist('tag')
if u'' in tags:
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['value'] = ''
else:
filter_form = ArticleFilterForm()
filter_form = BlogFilterForm()
context['article_filter_form'] = filter_form
return context

Loading…
Cancel
Save