|
|
|
@ -1,146 +1,19 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
from django import forms |
|
|
|
from django import forms |
|
|
|
from models import Setting, settings_dict |
|
|
|
from ckeditor.widgets import CKEditorWidget |
|
|
|
from django.conf import settings |
|
|
|
|
|
|
|
from functions.translate import fill_trans_fields, populate, ZERO_LANGUAGE, populate_all, fill_trans_fields_all |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SettingsForm(forms.Form): |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
Create Settings form for creating settings |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__init__ uses for dynamic creates fields |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
save function saves data in Settings object. If it doesnt exist create new object |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
|
|
|
|
super(SettingsForm, self).__init__(*args, **kwargs) |
|
|
|
|
|
|
|
# creates translated form fields, example: name_ru, name_en |
|
|
|
|
|
|
|
# len(10) is a hack for detect if settings.LANGUAGES is not configured it return all langs |
|
|
|
|
|
|
|
for model_name in settings_dict.values(): |
|
|
|
|
|
|
|
for setting in model_name: |
|
|
|
|
|
|
|
item = Setting.objects.get(key=setting['key']) |
|
|
|
|
|
|
|
if setting['type'] != 'transl': |
|
|
|
|
|
|
|
self.fields[setting['key']] = forms.CharField(label=setting['verbose_name'], initial=item.get_value(), |
|
|
|
|
|
|
|
required=False) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
if len(settings.LANGUAGES) in range(10): |
|
|
|
|
|
|
|
for lid, (code, name) in enumerate(settings.LANGUAGES): |
|
|
|
|
|
|
|
# using enumerate for detect iteration number |
|
|
|
|
|
|
|
# first iteration is a default lang so it required fields |
|
|
|
|
|
|
|
required = True if lid == 0 else False |
|
|
|
|
|
|
|
self.fields['%s_%s' %(setting['key'], code)] = forms.CharField(label=setting['verbose_name'], |
|
|
|
|
|
|
|
initial=item.get_value(code), |
|
|
|
|
|
|
|
required=required, |
|
|
|
|
|
|
|
widget=forms.TextInput( |
|
|
|
|
|
|
|
attrs={'style':'width: 450px'})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
settings_list = Setting.objects.all() |
|
|
|
|
|
|
|
for item in settings_list: |
|
|
|
|
|
|
|
if item.type != 'transl': |
|
|
|
|
|
|
|
self.fields['%s'%item.key] = forms.CharField(label='%s'%item.key, initial=item.get_value(), |
|
|
|
|
|
|
|
required=False) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
if len(settings.LANGUAGES) in range(10): |
|
|
|
|
|
|
|
for lid, (code, name) in enumerate(settings.LANGUAGES): |
|
|
|
|
|
|
|
# using enumerate for detect iteration number |
|
|
|
|
|
|
|
# first iteration is a default lang so it required fields |
|
|
|
|
|
|
|
required = True if lid == 0 else False |
|
|
|
|
|
|
|
self.fields['%s_%s' %(item.key, code)] = forms.CharField(label=getattr(item, 'key'), |
|
|
|
|
|
|
|
initial=item.get_value(code), |
|
|
|
|
|
|
|
required=required, |
|
|
|
|
|
|
|
widget=forms.TextInput( |
|
|
|
|
|
|
|
attrs={'style':'width: 450px'})) |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def save(self): |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
changes Settings model |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
data = self.cleaned_data |
|
|
|
|
|
|
|
capacity_tmpl = Setting.objects.get(key='hall_template') |
|
|
|
|
|
|
|
for code, name in settings.LANGUAGES: |
|
|
|
|
|
|
|
capacity_tmpl.set_value(data['hall_capacity_tmpl_%s'%code], code) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from exposition.models import Exposition |
|
|
|
|
|
|
|
from conference.models import Conference |
|
|
|
|
|
|
|
from seminar.models import Seminar |
|
|
|
|
|
|
|
from webinar.models import Webinar |
|
|
|
|
|
|
|
from photoreport.models import Photoreport |
|
|
|
|
|
|
|
from news.models import News |
|
|
|
|
|
|
|
from theme.models import Theme |
|
|
|
from theme.models import Theme |
|
|
|
|
|
|
|
from .models import Html |
|
|
|
from article.models import Article |
|
|
|
from article.models import Article |
|
|
|
|
|
|
|
from functions.forms import ExpoTranslatableModelForm |
|
|
|
|
|
|
|
|
|
|
|
import datetime |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MainPageEvent(forms.Form): |
|
|
|
|
|
|
|
expositions = forms.CharField(label=u'Выставки', widget=forms.HiddenInput(), required=False) |
|
|
|
|
|
|
|
conferences = forms.CharField(label=u'Конференции', widget=forms.HiddenInput(), required=False) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def save(self): |
|
|
|
|
|
|
|
data = self.cleaned_data |
|
|
|
|
|
|
|
expositions = data['expositions'] |
|
|
|
|
|
|
|
conferences = data['conferences'] |
|
|
|
|
|
|
|
Exposition.objects.filter(main_page=1).update(main_page=0) |
|
|
|
|
|
|
|
Exposition.objects.filter(id__in=expositions).update(main_page=1) |
|
|
|
|
|
|
|
#Conference.objects.filter(main_page=1).update(main_page=0) |
|
|
|
|
|
|
|
#Conference.update(main_page=1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class HtmlForm(ExpoTranslatableModelForm): |
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
|
|
|
model = Html |
|
|
|
|
|
|
|
widgets = { |
|
|
|
|
|
|
|
'text': CKEditorWidget, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
def clean_expositions(self): |
|
|
|
|
|
|
|
expositions = self.cleaned_data.get('expositions') |
|
|
|
|
|
|
|
if expositions: |
|
|
|
|
|
|
|
res = [] |
|
|
|
|
|
|
|
for id in expositions.split(','): |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
res.append(int(id)) |
|
|
|
|
|
|
|
except: |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
return res |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
return [] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
class MainPageEvent(forms.Form): |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
|
|
|
|
super(MainPageEvent, self).__init__(*args, **kwargs) |
|
|
|
|
|
|
|
now = datetime.datetime.now |
|
|
|
|
|
|
|
self.fields['expositions' ] = forms.ModelMultipleChoiceField( |
|
|
|
|
|
|
|
queryset=Exposition.objects.all(), |
|
|
|
|
|
|
|
required=False |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.fields['conferences' ] = forms.ModelMultipleChoiceField( |
|
|
|
|
|
|
|
queryset=Conference.objects.all(), |
|
|
|
|
|
|
|
required=False |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
self.fields['seminars' ] = forms.ModelMultipleChoiceField( |
|
|
|
|
|
|
|
queryset=Seminar.objects.all(), |
|
|
|
|
|
|
|
required=False |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
self.fields['webinars' ] = forms.ModelMultipleChoiceField( |
|
|
|
|
|
|
|
queryset=Webinar.objects.all(), |
|
|
|
|
|
|
|
required=False |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
def save(self): |
|
|
|
|
|
|
|
data = self.cleaned_data |
|
|
|
|
|
|
|
expositions = data['expositions'] |
|
|
|
|
|
|
|
conferences = data['conferences'] |
|
|
|
|
|
|
|
seminars = data['seminars'] |
|
|
|
|
|
|
|
webinars = data['webinars'] |
|
|
|
|
|
|
|
Exposition.objects.all().update(main_page=0) |
|
|
|
|
|
|
|
expositions.update(main_page=1) |
|
|
|
|
|
|
|
Conference.objects.all().update(main_page=0) |
|
|
|
|
|
|
|
conferences.update(main_page=1) |
|
|
|
|
|
|
|
Seminar.objects.all().update(main_page=0) |
|
|
|
|
|
|
|
seminars.update(main_page=1) |
|
|
|
|
|
|
|
Webinar.objects.all().update(main_page=0) |
|
|
|
|
|
|
|
webinars.update(main_page=1) |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MainPageThemes(forms.Form): |
|
|
|
class MainPageThemes(forms.Form): |
|
|
|
exposition_themes = forms.ModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.exposition), |
|
|
|
exposition_themes = forms.ModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.exposition), |
|
|
|
@ -163,17 +36,6 @@ class MainPageThemes(forms.Form): |
|
|
|
#seminar_themes.update(main_page=1) |
|
|
|
#seminar_themes.update(main_page=1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MainPagePhotoreport(forms.Form): |
|
|
|
|
|
|
|
photoreports = forms.ModelMultipleChoiceField(queryset=Photoreport.objects.all()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def save(self): |
|
|
|
|
|
|
|
data = self.cleaned_data |
|
|
|
|
|
|
|
photoreports = data['photoreports'] |
|
|
|
|
|
|
|
photoreports.update(main_page=1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MainPageNews(forms.Form): |
|
|
|
class MainPageNews(forms.Form): |
|
|
|
main_page_news = forms.CharField(label=u'Новости', widget=forms.HiddenInput(), required=False,) |
|
|
|
main_page_news = forms.CharField(label=u'Новости', widget=forms.HiddenInput(), required=False,) |
|
|
|
|
|
|
|
|
|
|
|
|