0.2.0 project request form

This commit is contained in:
SDE
2023-12-09 14:10:14 +03:00
parent 60a5d3e5cd
commit cfd649b21b
5 changed files with 121 additions and 0 deletions

95
ServicesApp/forms.py Normal file
View File

@@ -0,0 +1,95 @@
from django import forms
from django.contrib.auth.forms import AuthenticationForm
from django.utils.translation import gettext_lazy as _
from django.core.exceptions import ValidationError
from django.forms import widgets
object_type_choices = (
('new', _('Новостройка')),
('old', _('Вторичный объект')),
)
project_type_choices = (
('new', _('Новостройка')),
('old', _('Вторичный объект')),
)
class ProjectRequestForm(forms.Form):
# account_type = forms.ChoiceField(choices=account_type_choices, initial='sender', required=True)
firstname = forms.CharField(label=_('Имя'), required=True)
lastname = forms.CharField(label=_('Фамилия'), required=True)
project_role = forms.CharField(label=_('Роль в проекте'), required=True)
phone = forms.CharField(label=_('Телефон'), required=True)
email = forms.EmailField(label=_('Email'), required=True)
company_name = forms.CharField(label=_('Название компании'), required=True)
city = forms.CharField(label=_('Город'), required=True)
state = forms.CharField(label=_('Штат (Регион)'), required=True)
site_url = forms.URLField(label=_('Сайт компании'), required=True)
area = forms.IntegerField(label=_('Площадь проекта'), required=True)
object_type = forms.ChoiceField(label=_('Тип объекта'), choices=object_type_choices, required=True)
rates_set_D = forms.DateField(label=_('Срок действия набора ставок (приблизительный)'), required=True)
finish_construction_D = forms.DateField(label=_('Дата окончания строительства (приблизительная)'), required=True)
project_type = forms.ChoiceField(label=_('Тип проекта'), choices=project_type_choices, required=True)
construction_budget = forms.IntegerField(label=_('Бюджет строительства'), required=True)
description = forms.CharField(label=_('Описание проекта'), required=True)
planes = forms.FileField(
label=_('Существующие и предлагаемые планы'), required=True,
# widget=widgets.FileInput(attrs={'multiple': True}),
help_text=_('Пожалуйста загрузите любые существующие или предлагаемые планы, если это применимо'),
)
photos = forms.FileField(
label=_('Фото'), required=True,
# widget=widgets.FileInput(attrs={'multiple': True}),
help_text=_('Пожалуйста загрузите любые фото, относящиеся к проекту')
)
documents = forms.FileField(
label=_('Документы'), required=True,
# widget=widgets.FileInput(attrs={'multiple': True}),
help_text=_('Пожалуйста загрузите любые документы, относящиеся к проекту')
)
use_entered_contacts_for_conection = forms.BooleanField(
label=_('Использовать данные, указанные в разделе ЛИЧНЫЕ ДАННЫЕ'), initial=True, required=True
)
project_person_firstname = forms.CharField(label=_('Имя'), required=False)
project_person_lastname = forms.CharField(label=_('Фамилия'), required=False)
project_person_role = forms.CharField(label=_('Роль в проекте'), required=False)
project_person_phone = forms.CharField(label=_('Телефон'), required=False)
agreement = forms.BooleanField(
label=_('Принимаю пользовательское соглашение и принимаю условия обработки личных данных'),
initial=False, required=True
)
# def clean(self):
# cleaned_data = super().clean()
# i = 0
# names = list(cleaned_data.keys())
# while i < len(names):
# if not cleaned_data[names[i]]:
# if self.fields[names[i]].required:
# self.add_error(names[i], _('Обязательное поле'))
# i += 1
#
# if cleaned_data and 'confirm_password' in cleaned_data and 'password' in cleaned_data:
# if cleaned_data['confirm_password'] != cleaned_data['password']:
# self.add_error("password", _('Пароль и подтверждение пароля не совпадают'))
# self.add_error("confirm_password", _('Пароль и подтверждение пароля не совпадают'))
#
# if cleaned_data and 'email' in cleaned_data:
# users = User.objects.filter(email=cleaned_data['email'])
# if users:
# self.add_error('email', _("Пользователь с указанным email уже существует"))