Фикс фильтра у пункта Мета в админке

remotes/origin/HEAD
Slava Kyrachevsky 9 years ago
parent 601b9f3169
commit 559869876f
  1. 19
      apps/article/forms.py
  2. 13
      apps/core/simple_index_view.py
  3. 1
      apps/meta/admin.py
  4. 25
      apps/meta/forms.py

@ -97,6 +97,25 @@ class _BlogForm(forms.Form):
return []
class BlogForm(_BlogForm):
author = forms.ModelChoiceField(label=_(u'Автор'), queryset=Author.objects.all())
draft = forms.BooleanField(label=_(u'Черновик'), required=False, localize=True)
def __init__(self, *args, **kwargs):
super(BlogForm, self).__init__(*args, **kwargs)
if len(settings.LANGUAGES) in range(10):
for lid, (code, name) in enumerate(settings.LANGUAGES):
# required = True if lid == 0 else False
self.fields['short_description_%s' % code] = forms.CharField(label=_(u'Краткое содержание'), required=False, widget=CKEditorWidget)
def save(self, author, article=None, commit=True):
article = super(BlogForm, self).save(author, article=article, commit=False)
article.draft = self.cleaned_data['draft']
article.author_s = self.cleaned_data['author']
article.save()
return article
class NewsForm(_BlogForm):
type = Article.news
exposition = forms.CharField(label=_(u'Выставка'), widget=forms.HiddenInput(), required=False)

@ -62,3 +62,16 @@ class ParticipationViewLanding(JitterCacheMixin, MetadataMixin, FormView):
class AboutView(MetadataMixin, TemplateView):
template_name = 'client/simple_pages/about.html'
def callback(request):
response = {'success': False}
if request.GET:
form = CallBackForm(request.GET)
if form.is_valid():
form.save()
response['success'] = True
else:
response['errors'] = form.errors
return HttpResponse(json.dumps(response), content_type='application/json')

@ -13,6 +13,7 @@ class MetaListView(AdminListView):
form_class = MetaFilterForm
model = MetaSetting
class MetaView(AdminView):
form_class = MetaForm
model = MetaSetting

@ -48,8 +48,31 @@ class MetaForm(forms.Form):
meta.save()
class MetaFilterForm(AdminFilterForm):
class MetaFilterForm(forms.Form):
model = MetaSetting
exact_name = forms.CharField(label=_(u'Название'), required=False)
name = forms.CharField(label=_(u'Часть названия'), required=False)
def filter(self):
"""
return filtered queryset
form must be cleaned before calling this method
"""
model = self.model
data = self.cleaned_data
name = data['name']
exact_name = data['exact_name']
if exact_name:
qs = model.objects.filter(translations__title=name).distinct()
return qs
qs = model.objects.all()
if name:
qs = qs.filter(translations__title__icontains=name).distinct()
return qs
class SeoTextForm(TranslatableModelForm):

Loading…
Cancel
Save