2.1.17 route form

This commit is contained in:
SDE
2025-01-14 19:56:36 +03:00
parent a0b08a9a94
commit 8ac11d6234
9 changed files with 58 additions and 38 deletions

View File

@@ -247,10 +247,12 @@ def MainPage(request):
from ArticlesApp.models import ArticleModel
arts = ArticleModel.objects.filter(enable=True).order_by('-createDT')[:3]
owner_type = 'mover'
Dict = {
'page': page,
'FAQ': page.FAQ_items.filter(enable=True),
'route_form': RouteForm(),
'route_form': RouteForm(owner_type=owner_type),
'articles': arts,
'owner_type': 'mover'
}
@@ -273,18 +275,19 @@ def StaticPageView(request, url):
Dict = {}
owner_type = None
if url == '':
return MainPage(request)
elif url == 'for_movers':
Dict.update({
'route_form': RouteForm(),
'owner_type': 'customer',
})
owner_type = 'customer'
elif url == 'for_customers':
owner_type = 'mover'
if owner_type:
Dict.update({
'route_form': RouteForm(),
'owner_type': 'mover'
'route_form': RouteForm(owner_type=owner_type),
'owner_type': owner_type,
})
# elif url == 'works':
# return WorksPage(request)
elif url in ['main']:

View File

@@ -3,6 +3,8 @@ 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 .funcs import get_cargo_types_by_type_transport
from .models import *
import copy
@@ -26,10 +28,18 @@ class RouteForm(forms.ModelForm):
'from_place', 'to_place', 'receive_msg_by_sms'
]
def __init__(self, *args, **kwargs):
def __init__(self, owner_type, *args, **kwargs):
super(RouteForm, self).__init__(*args, **kwargs)
self.fields['from_city'].required = True
self.fields['to_city'].required = True
self.fields['type_transport'].required = True
if owner_type == 'mover':
self.fields['departure_DT'].required = True
self.fields['type_transport'].choices = type_transport_choices[:-1]
else:
self.fields['type_transport'].choices = type_transport_choices
def clean(self):
# print('check')

View File

@@ -6,6 +6,7 @@ from django.utils.translation import gettext as _
from django.template.loader import render_to_string
from datetime import datetime, timedelta
from django.db.models import F, Q
import copy
elements_on_page = 25
@@ -28,37 +29,41 @@ def get_cargo_types_by_type_transport(type_transport, form=None):
def get_profile_new_route_page_html(request, data):
form = RouteForm()
if not 'owner_type' in data:
msg = 'не достаточно данных'
return JsonResponse({'error': msg}, status=400)
owner_type = data['owner_type']
if data['owner_type'] == 'mover':
tpl = 'v2/blocks/b_create_mover_route.html'
# form.fields['type_transport'].choices = type_transport_choices[:-1]
else:
tpl = 'v2/blocks/b_create_customer_route.html'
# form.fields['type_transport'].choices = type_transport_choices
from .forms import RouteForm
form = RouteForm(owner_type=owner_type)
form.initial['owner_type'] = owner_type
Dict = {
'form': form
}
tpl = None
try:
errors_off = True
form = RouteForm(data)
form = RouteForm(data=data, owner_type=owner_type)
if not form.is_valid():
pass
form = RouteForm(initial=form.cleaned_data)
form = RouteForm(initial=form.cleaned_data, owner_type=owner_type)
if 'type_transport' in data:
form = get_cargo_types_by_type_transport(data['type_transport'], form)
# if 'type_transport' in data:
# form = get_cargo_types_by_type_transport(data['type_transport'], form)
if 'owner_type' in data:
form.initial['owner_type'] = data['owner_type']
if data['owner_type'] == 'mover':
tpl = 'v2/blocks/b_make_mover_order.html'
form.fields['type_transport'].choices = type_transport_choices[:-1]
else:
tpl = 'v2/blocks/b_make_customer_route.html'
form.fields['type_transport'].choices = type_transport_choices
Dict.update({'owner_type': data['owner_type']})
Dict.update({'owner_type': owner_type})
if request.user and request.user.is_authenticated and request.user.user_profile and request.user.user_profile.phone:

View File

@@ -173,7 +173,7 @@ def edit_route_ajax(request):
route = Route.objects.get(id=data['route_id'])
form = RouteForm(instance=route)
form = RouteForm(instance=route, owner_type=route.owner_type)
form = get_cargo_types_by_type_transport(route.type_transport, form)
# routeForm_assign_choices_by_type_transport(form, route.type_transport)
@@ -381,8 +381,8 @@ def create_or_change_route_ajax(request, route_id=None):
route_old_Dict = None
owner_type = None
tpl_form_by_owner_type = 'v2/forms/f_make_customer_route.html'
tpl_block_by_owner_type = 'v2/blocks/b_make_customer_route.html'
tpl_form_by_owner_type = 'v2/forms/f_create_customer_route.html'
tpl_block_by_owner_type = 'v2/blocks/b_create_customer_route.html'
try:
@@ -395,19 +395,19 @@ def create_or_change_route_ajax(request, route_id=None):
owner_type = data['owner_type']
if owner_type == 'mover':
tpl_form_by_owner_type = 'v2/forms/f_make_mover_order.html'
tpl_block_by_owner_type = 'v2/blocks/b_make_mover_order.html'
tpl_form_by_owner_type = 'v2/forms/f_create_mover_route.html'
tpl_block_by_owner_type = 'v2/blocks/b_create_mover_route.html'
route = None
if route_id:
route = Route.objects.get(id=route_id)
if route:
form = RouteForm(data, instance=route)
form = RouteForm(data=data, instance=route, owner_type=owner_type)
Dict.update({'route': route})
route_old_Dict = deepcopy(route.__dict__)
else:
form = RouteForm(data)
form = RouteForm(data=data, owner_type=owner_type)
if not form.is_valid():
form.initial = form.cleaned_data

View File

@@ -26,13 +26,15 @@ def route_search_results_View(request):
if request.GET:
data = request.GET.dict()
owner_type = data['owner_type']
routes_Dict = get_routes_Dict(data=data)
if routes_Dict:
Dict = {
'routes': routes_Dict['routes'],
'last_block': routes_Dict['last_block'],
'show_filter_and_results': True,
'owner_type': data['owner_type'],
'owner_type': owner_type,
'last_el': routes_Dict['last_el'],
'page_type': 'routes',
'next_page_els_count': routes_Dict['next_page_els_count'],
@@ -41,7 +43,7 @@ def route_search_results_View(request):
data.update({'from_address_point_txt': routes_Dict['from_address_point_txt']})
if 'to_address_point_txt' in routes_Dict:
data.update({'to_address_point_txt': routes_Dict['to_address_point_txt']})
Dict.update({'route_form': RouteForm(initial=data)})
Dict.update({'route_form': RouteForm(initial=data, owner_type=owner_type)})
title = _('Результат поиска маршрутов')
if 'from_address_point_txt' in data:

View File

@@ -12,5 +12,5 @@
<div class="b_make_poster_order">
<div class="make_poster_order_title">{% trans "Заполните форму, чтобы отправить посылку" %}</div>
{% include 'v2/forms/f_make_customer_route.html' %}
{% include 'v2/forms/f_create_customer_route.html' %}
</div>

View File

@@ -12,5 +12,5 @@
<div class="b_make_poster_order">
<div class="make_poster_order_title">{% trans "Заполните форму, чтобы перевезти посылку" %}</div>
{% include 'v2/forms/f_make_mover_order.html' %}
{% include 'v2/forms/f_create_mover_route.html' %}
</div>