You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.6 KiB
80 lines
2.6 KiB
# -*- coding: utf-8 -*-
|
|
from django import forms
|
|
from ckeditor.widgets import CKEditorWidget
|
|
from theme.models import Theme
|
|
from .models import Html, LandingComment, LandingParticipationComment
|
|
from article.models import Article
|
|
from functions.forms import ExpoTranslatableModelForm, ExpoTranslatableModelForm_
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
|
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 ParticipationCommentForm(CommentForm):
|
|
class Meta:
|
|
model = LandingParticipationComment
|
|
|
|
|
|
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)
|
|
|