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.
76 lines
2.4 KiB
76 lines
2.4 KiB
# -*- coding: utf-8 -*-
|
|
from django import forms
|
|
from expobanner.models import URL, BannerGroup, Banner
|
|
from country.models import Country
|
|
from city.models import City
|
|
from theme.models import Theme, Tag
|
|
|
|
|
|
class UrlCreateForm(forms.ModelForm):
|
|
verbose = u'Создать урл'
|
|
class Meta:
|
|
model = URL
|
|
exclude = ['created_at', 'updated_at', 'sites']
|
|
|
|
|
|
class BannerCreateGroupForm(forms.ModelForm):
|
|
verbose = u'Создать групу'
|
|
class Meta:
|
|
model = BannerGroup
|
|
exclude = ['created_at', 'updated_at', 'speed']
|
|
|
|
class BannerGroupUpdateForm(BannerCreateGroupForm):
|
|
verbose = u'Изменить групу'
|
|
class Meta:
|
|
model = BannerGroup
|
|
exclude = ['created_at', 'updated_at', 'slug', 'speed']
|
|
|
|
|
|
class BannerCreateForm(forms.ModelForm):
|
|
verbose = u'Создать банер'
|
|
country = forms.ChoiceField(label=u'Страна', choices=[('', ' ')] + [(c.id, c.name) for c in Country.objects.all()], required=False)
|
|
theme = forms.ChoiceField(label=u'Тематика', required=False,
|
|
choices=[('', ' ')] + [(item.id, item.name) for item in Theme.objects.language().all()])
|
|
city = forms.CharField(label=u'Город', widget=forms.HiddenInput(), required=False)
|
|
tag = forms.CharField(label=u'Тег', widget=forms.HiddenInput(), required=False)
|
|
|
|
|
|
class Meta:
|
|
model = Banner
|
|
exclude = ['created_at', 'updated_at', 'often', 'paid']
|
|
|
|
def clean_theme(self):
|
|
theme = self.cleaned_data['theme']
|
|
if not theme:
|
|
return None
|
|
try:
|
|
return Theme.objects.filter(id=theme)
|
|
except Theme.DoesNotExist:
|
|
return None
|
|
|
|
def clean_country(self):
|
|
country = self.cleaned_data['country']
|
|
if not country:
|
|
return None
|
|
try:
|
|
return Country.objects.get(id=country)
|
|
except Country.DoesNotExist:
|
|
return None
|
|
|
|
def clean_tag(self):
|
|
tag = self.cleaned_data['tag']
|
|
if not tag:
|
|
return None
|
|
try:
|
|
return Tag.objects.get(id=tag)
|
|
except Tag.DoesNotExist:
|
|
return None
|
|
|
|
def clean_city(self):
|
|
city = self.cleaned_data['city']
|
|
if not city:
|
|
return None
|
|
try:
|
|
return City.objects.get(id=city)
|
|
except City.DoesNotExist:
|
|
return None |