37 lines
1.9 KiB
Python
37 lines
1.9 KiB
Python
from django import forms
|
|
from django.core.validators import RegexValidator
|
|
from .models import *
|
|
|
|
|
|
class BaseOrderCreationForm(forms.ModelForm):
|
|
type_of_room = forms.ChoiceField(choices=Order.TYPE_OF_ROOM_CHOICES, required=False, label="Тип квартиры",
|
|
widget=forms.RadioSelect(attrs={"class": "inline-input"}))
|
|
is_require_design = forms.ChoiceField(choices=Order.REQUIRED_DESIGN_CHOICES, label="Требуется дизайн проект",
|
|
required=False, widget=forms.RadioSelect(attrs={"class": "inline-input"}))
|
|
purchase_of_material = forms.ChoiceField(choices=Order.PURCHASE_OF_MATERIAL_CHOICES, widget=forms.RadioSelect,
|
|
required=False, label="Закуп материала")
|
|
type_of_executor = forms.ChoiceField(choices=Order.TYPE_OF_EXECUTOR_CHOICES, widget=forms.RadioSelect,
|
|
required=False, label="Тип исполнителя")
|
|
|
|
class Meta:
|
|
model = Order
|
|
fields = [
|
|
'name', 'description', 'square',
|
|
'type_of_renovation', 'type_of_house', 'type_of_room',
|
|
'is_require_design', 'purchase_of_material', 'type_of_executor',
|
|
'is_with_warranty', 'is_with_contract', 'is_with_trade', 'is_with_cleaning', 'is_with_garbage_removal',
|
|
'date_start', 'date_end',
|
|
'approximate_price', 'work_time', 'address_city', 'address_text',
|
|
]
|
|
|
|
|
|
class UnregisteredUserOrderCreationForm(BaseOrderCreationForm):
|
|
phone = forms.CharField(max_length=12, required=True, label="Телефон", help_text="для обратной связи", validators=[
|
|
RegexValidator(regex="^\\+7[0-9]{10}$"),
|
|
])
|
|
email = forms.EmailField(required=True)
|
|
|
|
class Meta:
|
|
model = Order
|
|
fields = BaseOrderCreationForm.Meta.fields + ['phone', 'email']
|