# -*- coding: utf-8 -*- from django import forms from ckeditor.widgets import CKEditorWidget from theme.models import Theme from .models import Html, LandingComment from article.models import Article from functions.forms import ExpoTranslatableModelForm, ExpoTranslatableModelForm_ class HtmlForm(ExpoTranslatableModelForm): class Meta: model = Html widgets = { 'text': CKEditorWidget, } class CommentForm(ExpoTranslatableModelForm_): class Meta: model = LandingComment @property def verbose(self): return u'Редактировать комментарий' if self.instance.pk else u'Создать комментарий' class MainPageThemes(forms.Form): exposition_themes = forms.ModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.exposition), required=False) conference_themes = forms.ModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.conference), required=False) def save(self): data = self.cleaned_data exposition_themes = data['exposition_themes'] conference_themes = data['conference_themes'] Theme.objects.filter().update(main_page=0) exposition_themes.update(main_page=1) conference_themes.update(main_page=1) class MainPageNews(forms.Form): main_page_news = forms.CharField(label=u'Новости', widget=forms.HiddenInput(), required=False,) def save(self): data = self.cleaned_data news = data['main_page_news'] Article.objects.news().exclude(id__in=[item.id for item in news]).update(main_page=0) news.update(main_page=1) def clean_main_page_news(self): news = self.cleaned_data['main_page_news'] if news: news = news.split(',') qs = Article.objects.news().filter(id__in=news) else: qs = Article.objects.none() return qs class MainPageArticle(forms.Form): article = forms.ModelMultipleChoiceField(queryset=Article.objects.blogs(), required=False, widget=forms.SelectMultiple(attrs={'style': 'width: 100%;'})) def save(self): data = self.cleaned_data articles = data['article'] Article.objects.blogs().exclude(id__in=[item.id for item in articles]).update(main_page=0) articles.update(main_page=1)