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

View File

@@ -3,6 +3,8 @@ from django import forms
from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import AuthenticationForm
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from .funcs import get_cargo_types_by_type_transport
from .models import * from .models import *
import copy import copy
@@ -26,10 +28,18 @@ class RouteForm(forms.ModelForm):
'from_place', 'to_place', 'receive_msg_by_sms' '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) super(RouteForm, self).__init__(*args, **kwargs)
self.fields['from_city'].required = True self.fields['from_city'].required = True
self.fields['to_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): def clean(self):
# print('check') # print('check')

View File

@@ -6,6 +6,7 @@ from django.utils.translation import gettext as _
from django.template.loader import render_to_string from django.template.loader import render_to_string
from datetime import datetime, timedelta from datetime import datetime, timedelta
from django.db.models import F, Q from django.db.models import F, Q
import copy
elements_on_page = 25 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): 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 = { Dict = {
'form': form 'form': form
} }
tpl = None
try: try:
errors_off = True errors_off = True
form = RouteForm(data) form = RouteForm(data=data, owner_type=owner_type)
if not form.is_valid(): if not form.is_valid():
pass pass
form = RouteForm(initial=form.cleaned_data) form = RouteForm(initial=form.cleaned_data, owner_type=owner_type)
if 'type_transport' in data: # if 'type_transport' in data:
form = get_cargo_types_by_type_transport(data['type_transport'], form) # form = get_cargo_types_by_type_transport(data['type_transport'], form)
Dict.update({'owner_type': owner_type})
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']})
if request.user and request.user.is_authenticated and request.user.user_profile and request.user.user_profile.phone: 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']) 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) form = get_cargo_types_by_type_transport(route.type_transport, form)
# routeForm_assign_choices_by_type_transport(form, route.type_transport) # 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 route_old_Dict = None
owner_type = None owner_type = None
tpl_form_by_owner_type = 'v2/forms/f_make_customer_route.html' tpl_form_by_owner_type = 'v2/forms/f_create_customer_route.html'
tpl_block_by_owner_type = 'v2/blocks/b_make_customer_route.html' tpl_block_by_owner_type = 'v2/blocks/b_create_customer_route.html'
try: try:
@@ -395,19 +395,19 @@ def create_or_change_route_ajax(request, route_id=None):
owner_type = data['owner_type'] owner_type = data['owner_type']
if owner_type == 'mover': if owner_type == 'mover':
tpl_form_by_owner_type = 'v2/forms/f_make_mover_order.html' tpl_form_by_owner_type = 'v2/forms/f_create_mover_route.html'
tpl_block_by_owner_type = 'v2/blocks/b_make_mover_order.html' tpl_block_by_owner_type = 'v2/blocks/b_create_mover_route.html'
route = None route = None
if route_id: if route_id:
route = Route.objects.get(id=route_id) route = Route.objects.get(id=route_id)
if route: if route:
form = RouteForm(data, instance=route) form = RouteForm(data=data, instance=route, owner_type=owner_type)
Dict.update({'route': route}) Dict.update({'route': route})
route_old_Dict = deepcopy(route.__dict__) route_old_Dict = deepcopy(route.__dict__)
else: else:
form = RouteForm(data) form = RouteForm(data=data, owner_type=owner_type)
if not form.is_valid(): if not form.is_valid():
form.initial = form.cleaned_data form.initial = form.cleaned_data

View File

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

View File

@@ -12,5 +12,5 @@
<div class="b_make_poster_order"> <div class="b_make_poster_order">
<div class="make_poster_order_title">{% trans "Заполните форму, чтобы отправить посылку" %}</div> <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> </div>

View File

@@ -12,5 +12,5 @@
<div class="b_make_poster_order"> <div class="b_make_poster_order">
<div class="make_poster_order_title">{% trans "Заполните форму, чтобы перевезти посылку" %}</div> <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> </div>