0.2.0 project request form
This commit is contained in:
95
ServicesApp/forms.py
Normal file
95
ServicesApp/forms.py
Normal 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 уже существует"))
|
||||||
|
|
||||||
|
|
||||||
@@ -6,6 +6,7 @@ from .views import *
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('section/<str:url>/', section_view, name='section_page'),
|
path('section/<str:url>/', section_view, name='section_page'),
|
||||||
|
path('project_request/', page_project_request_View, name='page_project_request'),
|
||||||
# path('page/<str:url>/', StaticPageView, name='static_page'),
|
# path('page/<str:url>/', StaticPageView, name='static_page'),
|
||||||
# path('test_code', test_code, name='test_code'),
|
# path('test_code', test_code, name='test_code'),
|
||||||
]
|
]
|
||||||
@@ -7,6 +7,24 @@ from .models import *
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from GeneralApp.funcs import get_inter_http_respose
|
from GeneralApp.funcs import get_inter_http_respose
|
||||||
|
|
||||||
|
|
||||||
|
def page_project_request_View(request):
|
||||||
|
from .forms import ProjectRequestForm
|
||||||
|
|
||||||
|
project_request_form = ProjectRequestForm()
|
||||||
|
Dict = {
|
||||||
|
'project_request_form': project_request_form
|
||||||
|
}
|
||||||
|
|
||||||
|
# breadcrumbs_Dict = {
|
||||||
|
# }
|
||||||
|
# Dict.update({'breadcrumbs': breadcrumbs_Dict})
|
||||||
|
|
||||||
|
t = loader.get_template('pages/p_project_request.html')
|
||||||
|
return get_inter_http_respose(t, Dict, request)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def section_view(request, url):
|
def section_view(request, url):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
3
templates/forms/f_project_request.html
Normal file
3
templates/forms/f_project_request.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<form action="" method="get" >
|
||||||
|
{{ project_request_form.as_div }}
|
||||||
|
</form>
|
||||||
4
templates/pages/p_project_request.html
Normal file
4
templates/pages/p_project_request.html
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{% extends 'tb_base.html' %}
|
||||||
|
{% block CONTENT %}
|
||||||
|
{% include "forms/f_project_request.html" %}
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user