Files
Aerbim/ServicesApp/forms.py
2023-12-09 14:10:14 +03:00

96 lines
4.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 уже существует"))