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.
 
 
 
 
 
 

78 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, ParticipationComment
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 = ParticipationComment
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']
exposition_themes.update(main_page_expo=1)
conference_themes.update(main_page_conf=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)