fix form new route
This commit is contained in:
SDE
2023-07-28 19:07:36 +03:00
parent 45234121d4
commit c0ed5d5803
4 changed files with 259 additions and 177 deletions

View File

@@ -19,10 +19,19 @@ def new_route_view_ajax(request):
if request.method != 'POST': if request.method != 'POST':
raise Http404 raise Http404
data = request.POST
form = CreateRouteForm(data)
if not form.is_valid():
pass
Dict = { Dict = {
'form': CreateRouteForm() 'form': form
} }
# print(form)
html = render_to_string('blocks/profile/b_new_route.html', Dict, request=request) html = render_to_string('blocks/profile/b_new_route.html', Dict, request=request)
return JsonResponse({'html': html}, status=200) return JsonResponse({'html': html}, status=200)

View File

@@ -3,10 +3,11 @@ from django.utils.translation import gettext_lazy as _
from BaseModels.base_models import BaseModel from BaseModels.base_models import BaseModel
type_transport_choices = ( type_transport_choices = [
('', _('-- Выберите cпособ перевозки --')),
('avia', _('Авиатранспорт')), ('avia', _('Авиатранспорт')),
('road', _('Наземный транспорт')) ('road', _('Наземный транспорт'))
) ]
transfer_location_choices = ( transfer_location_choices = (
('airport', _('В аэропорту')), ('airport', _('В аэропорту')),
@@ -35,7 +36,7 @@ class Route(BaseModel):
choices=owner_type_choices, default='customer', verbose_name=_('Тип опреации')) choices=owner_type_choices, default='customer', verbose_name=_('Тип опреации'))
type_transport = models.CharField( type_transport = models.CharField(
choices=type_transport_choices, default='avia', verbose_name=_('Выберите способ перевозки')) choices=type_transport_choices, default='', verbose_name=_('Выберите способ перевозки'))
departure_DT = models.DateTimeField(default=True, verbose_name=_('Дата и время выезда')) departure_DT = models.DateTimeField(default=True, verbose_name=_('Дата и время выезда'))
arrival_DT = models.DateTimeField(default=True, verbose_name=_('Дата и время прибытия')) arrival_DT = models.DateTimeField(default=True, verbose_name=_('Дата и время прибытия'))
from_address_point = models.IntegerField(verbose_name=_('Пункт выезда')) from_address_point = models.IntegerField(verbose_name=_('Пункт выезда'))

View File

@@ -42,10 +42,13 @@ function sendRoute(el){
//cleaning route inputs after selection changes //cleaning route inputs after selection changes
function OnSelectionChange(el) { function OnSelectionChange(el) {
let form = el.form; event.preventDefault()
let formData = new FormData(form);
$.ajax({ let form = el.form;
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() }, let formData = new FormData(form);
$.ajax({
headers: {"X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val()},
url: '/ru/user_account/new_route_view/', url: '/ru/user_account/new_route_view/',
type: "POST", type: "POST",
// async: true, // async: true,
@@ -54,24 +57,22 @@ function OnSelectionChange(el) {
contentType: false, contentType: false,
// enctype: 'json', // enctype: 'json',
data: formData, data: formData,
success: function(data){ success: function (data) {
// console.log('data received') console.log('data.html');
// location.href = '/profile' // location.href = '/profile'
document.querySelector(".info_profile").innerHTML = data.html document.querySelector(".info_profile").innerHTML = data.html
//
$(document).ready(function (e){ // $(document).ready(function (e){
$('#id_weight').ionRangeSlider({ // $('#id_weight').ionRangeSlider({
skin: "round", // skin: "round",
type: "single", // type: "single",
min: 0, // min: 0,
max: 1000, // max: 1000,
from: 100, // from: 100,
step: 1, // step: 1,
grid: true, // grid: true,
grid_num: 5, // grid_num: 5,
}); // }
});
//get dynamic value //get dynamic value
// let fromCountry = document.getElementById('id_from_country'); // let fromCountry = document.getElementById('id_from_country');

View File

@@ -9,14 +9,18 @@
<label for="id_type_transport">{{ form.fields.type_transport.label }}</label> <label for="id_type_transport">{{ form.fields.type_transport.label }}</label>
</div> </div>
<div> <div>
<select <select
onchange="OnSelectionChange(this)" onchange="OnSelectionChange(this)"
name="type_transport" name="type_transport"
id="id_type_transport"> id="id_type_transport">
{% for item in form.fields.type_transport.choices %} {% for item in form.fields.type_transport.choices %}
<option <option
value="{{ item.0 }}"{% if form.cleaned_data.type_transport == item.0 %} value="{{ item.0 }}"
selected="selected"{% endif %}>{{ item.1 }} {% if form.cleaned_data.type_transport == item.0 %}
selected="selected"
{% endif %}>
{{ item.1 }}
</option> </option>
{% endfor %} {% endfor %}
</select> </select>
@@ -25,19 +29,72 @@
{% endif %} {% endif %}
</div> </div>
<hr> {% if form.cleaned_data and form.cleaned_data.type_transport and form.cleaned_data.type_transport != '' %}
<div class="departure_arrival"> <hr>
<div> <div class="departure_arrival">
<label for="id_departure_DT">{{ form.fields.departure_DT.label }}</label> <div>
<label for="id_departure_DT">{{ form.fields.departure_DT.label }}</label>
<input <input
type="datetime-local" type="datetime-local"
name="departure_DT" name="departure_DT"
{% if form.fields.departure_DT.required %} required{% endif %} {% if form.fields.departure_DT.required %} required{% endif %}
id="id_departure_DT" id="id_departure_DT"
{% if form.data.departure_DT %}value="{{ form.data.departure_DT }}"{% endif %} {% if form.data.departure_DT %}value="{{ form.data.departure_DT }}"{% endif %}
/> />
{% if form.errors and form.errors.departure_DT %}
<span>{{ form.errors.departure_DT }}</span>
{% endif %}
</div>
<div>
<label for="id_arrival_DT">{{ form.fields.arrival_DT.label }}</label>
<input
type="datetime-local"
name="arrival_DT"
{% if form.fields.arrival_DT.required %} required{% endif %}
id="id_arrival_DT"
{% if form.data.arrival_DT %}value="{{ form.data.arrival_DT }}"{% endif %}
{# |date: 'Y-m-d H:i' #}
/>
{% if form.errors and form.errors.arrival_DT %}
<span>{{ form.errors.arrival_DT }}</span>
{% endif %}
</div>
</div>
<hr>
<div class="from_to_country">
<div class="from_country_container">
<label for="id_from_address_point">{{ form.fields.from_address_point.label }}</label>
<input type="number" name="from_address_point" id="id_from_address_point" hidden />
<input
oninput="searchTown(this)"
onclick="searchTown(this)"
onblur="onblurInputField(event, this)"
type="text"
name="from_address_point_txt"
{% if form.fields.from_address_point.required %} required{% endif %}
id="id_from_address_point_txt"
{% if form.cleaned_data.from_address_point_txt %}value="{{ form.cleaned_data.from_address_point_txt }}"{% endif %}
/>
<div class="input_list" name="from_address_point_txt_list">
</div>
{% if form.errors and form.errors.from_address_point %}
<span>{{ form.errors.from_address_point}}</span>
{% endif %}
</div>
<div>
<label for="id_to_address_point">{{ form.fields.to_address_point.label }}</label>
<input type="number" name="to_address_point" id="id_to_address_point" hidden />
<input
oninput="searchTown(this)"
onclick="searchTown(this)"
onblur="onblurInputField(event, this)"
type="text"
name="to_address_point_txt"
{% if form.fields.to_address_point.required %} required{% endif %}
id="id_to_address_point_txt"
{% if form.cleaned_data.to_address_point_txt %}value="{{ form.cleaned_data.to_address_point_txt}}"{% endif %}
{% if form.errors and form.errors.departure_DT %} {% if form.errors and form.errors.departure_DT %}
<span>{{ form.errors.departure_DT }}</span> <span>{{ form.errors.departure_DT }}</span>
{% endif %} {% endif %}
@@ -91,83 +148,94 @@
id="id_to_address_point_txt" id="id_to_address_point_txt"
{% if form.cleaned_data.to_address_point_txt %}value="{{ form.cleaned_data.to_address_point_txt}}"{% endif %} {% if form.cleaned_data.to_address_point_txt %}value="{{ form.cleaned_data.to_address_point_txt}}"{% endif %}
/> />
<div class="input_list" name="to_address_point_txt_list"> <div class="input_list" name="to_address_point_txt_list">
</div>
{% if form.errors and form.errors.to_address_point %}
<span>{{ form.errors.to_address_point }}</span>
{% endif %}
</div>
</div>
{# <div>#}
{# <label for="id_from_city">{{ form.fields.from_city.label }}</label>#}
{# <input type="text" name="from_city"{% if form.fields.from_city.required %} required{% endif %} id="id_from_city">#}
{# </div>#}
{# <div>#}
{# <label for="id_to_city">{{ form.fields.to_city.label }}</label>#}
{# <input type="text" name="to_city"{% if form.fields.to_city.required %} required{% endif %} id="id_to_city">#}
{# </div>#}
<div class="from_to_place">
<div>
<label for="id_from_place">{{ form.fields.from_place.label }}</label>
<select
name="from_place"
id="id_from_place"
{% if form.fields.from_place.required %} required{% endif %}>
{% for item in form.fields.from_place.choices %}
<option
value="{{ item.0 }}"{% if form.cleaned_data.from_place == item.0 %}
selected="selected"{% endif %}>{{ item.1 }}
</option>
{% endfor %}
</select>
{% if form.errors and form.errors.from_place %}
<span>{{ form.errors.from_place }}</span>
{% endif %}
</div>
<div>
<label for="id_to_place">{{ form.fields.to_place.label }}</label>
<select
name="to_place"
id="id_to_place"
{% if form.fields.to_place.required %} required{% endif %}>
{% for item in form.fields.to_place.choices %}
<option
value="{{ item.0 }}"{% if form.cleaned_data.to_place == item.0 %}
selected="selected"{% endif %}>{{ item.1 }}
</option>
{% endfor %}
</select>
{% if form.errors and form.errors.to_place %}
<span>{{ form.errors.to_place }}</span>
{% endif %}
</div>
</div>
<hr>
<div>
<label for="id_cargo_type">{{ form.fields.cargo_type.label }}</label>
</div>
{#<div>#}
{# <select#}
{# multiple#}
{# size="5"#}
{# name="cargo_type"#}
{# id="id_cargo_type"#}
{# {% if form.fields.cargo_type.required %} required{% endif %}>#}
{# {% for item in form.fields.cargo_type.choices %}#}
{# <option#}
{# value="{{ item.0 }}"{% if form.fields.cargo_type == item.0 %}#}
{# selected="selected"{% endif %}>{{ item.1 }}#}
{# </option>#}
{# {% endfor %}#}
{##}
{# </select>#}
{# </div>#}
</div>
{% if form.errors and form.errors.to_address_point %}
<span>{{ form.errors.to_address_point }}</span>
{% endif %}
</div>
</div>
{# <div>#}
{# <label for="id_from_city">{{ form.fields.from_city.label }}</label>#}
{# <input type="text" name="from_city"{% if form.fields.from_city.required %} required{% endif %} id="id_from_city">#}
{# </div>#}
{# <div>#}
{# <label for="id_to_city">{{ form.fields.to_city.label }}</label>#}
{# <input type="text" name="to_city"{% if form.fields.to_city.required %} required{% endif %} id="id_to_city">#}
{# </div>#}
<div class="from_to_place">
<div> <div>
<label for="id_from_place">{{ form.fields.from_place.label }}</label> {% for item in form.fields.cargo_type.choices %}
<select <input
name="from_place" type="checkbox"
id="id_from_place" name="cargo_type"
{% if form.fields.from_place.required %} required{% endif %}> id="id_cargo_type"
{% for item in form.fields.from_place.choices %} {% if form.fields.cargo_type.required %} required{% endif %}
<option value="{{ item.0 }}"
value="{{ item.0 }}"{% if form.cleaned_data.from_place == item.0 %} {% if form.fields.cargo_type == item.0 %}
selected="selected"{% endif %}>{{ item.1 }} {% endif %}/>{{ item.1 }}
</option> {% endfor %}
{% endfor %}
</select>
{% if form.errors and form.errors.from_place %}
<span>{{ form.errors.from_place }}</span>
{% endif %}
</div>
<div>
<label for="id_to_place">{{ form.fields.to_place.label }}</label>
<select
name="to_place"
id="id_to_place"
{% if form.fields.to_place.required %} required{% endif %}>
{% for item in form.fields.to_place.choices %}
<option
value="{{ item.0 }}"{% if form.cleaned_data.to_place == item.0 %}
selected="selected"{% endif %}>{{ item.1 }}
</option>
{% endfor %}
</select>
{% if form.errors and form.errors.to_place %}
<span>{{ form.errors.to_place }}</span>
{% endif %}
</div>
</div>
<hr>
<div>
<label for="id_cargo_type">{{ form.fields.cargo_type.label }}</label>
</div>
{#<div>#}
{# <select#}
{# multiple#}
{# size="5"#}
{# name="cargo_type"#}
{# id="id_cargo_type"#}
{# {% if form.fields.cargo_type.required %} required{% endif %}>#}
{# {% for item in form.fields.cargo_type.choices %}#}
{# <option#}
{# value="{{ item.0 }}"{% if form.fields.cargo_type == item.0 %}#}
{# selected="selected"{% endif %}>{{ item.1 }}#}
{# </option>#}
{# {% endfor %}#}
{##}
{# </select>#}
{# </div>#}
<div class="checkbox_cargo_type"> <div class="checkbox_cargo_type">
{% for item in form.fields.cargo_type.choices %} {% for item in form.fields.cargo_type.choices %}
<input <input
@@ -180,78 +248,81 @@
{% endif %}/>{{ item.1 }} {% endif %}/>{{ item.1 }}
{% endfor %} {% endfor %}
{# <lable for="">#} {# <lable for="">#}
{##} {##}
{# </lable>#} {# </lable>#}
{% if form.errors and form.errors.cargo_type %} {% if form.errors and form.errors.cargo_type %}
<span>{{ form.errors.cargo_type }}</span> <span>{{ form.errors.cargo_type }}</span>
{% endif %} {% endif %}
</div> </div>
<hr> <hr>
<div class="range-slider"> <div class="range-slider">
<label for="id_weight">{{ form.fields.weight.label }}</label> <label for="id_weight">{{ form.fields.weight.label }}</label>
<input <input
type="text" type="text"
id="id_weight" id="id_weight"
{% if form.fields.weight.required %} required{% endif %} {% if form.fields.weight.required %} required{% endif %}
name="weight" name="weight"
{# value=""#} {# value=""#}
{% if form.cleaned_data.weight %}value="{{ form.cleaned_data.weight}}"{% endif %} {% if form.cleaned_data.weight %}value="{{ form.cleaned_data.weight}}"{% endif %}
/> />
{% if form.errors and form.errors.weight %} {% if form.errors and form.errors.weight %}
<span>{{ form.errors.weight }}</span> <span>{{ form.errors.weight }}</span>
{% endif %}
</div>
<hr>
<div class="phone">
<div>
<label for="id_phone">{{ form.fields.phone.label }}</label>
<input
type="text"
name="phone"
placeholder="{{ form.fields.phone.label }}"
{% if form.fields.phone.required %} required{% endif %}
id="id_phone"
{% if form.cleaned_data.phone %}value="{{ form.cleaned_data.phone}}"{% endif %}
/>
{% if form.errors and form.errors.phone %}
<span>{{ form.errors.phone }}</span>
{% endif %} {% endif %}
</div> </div>
<div> <hr>
<label for="id_extra_phone">{{ form.fields.extra_phone.label }}</label> <div class="phone">
<input <div>
type="text" <label for="id_phone">{{ form.fields.phone.label }}</label>
name="extra_phone" <input
id="id_extra_phone" type="text"
placeholder="{{ form.fields.extra_phone.label }}" name="phone"
{% if form.cleaned_data.extra_phone %}value="{{ form.cleaned_data.extra_phone}}"{% endif %} placeholder="{{ form.fields.phone.label }}"
/> {% if form.fields.phone.required %} required{% endif %}
{% if form.errors and form.errors.extra_phone %} id="id_phone"
<span>{{ form.errors.extra_phone }}</span> {% if form.cleaned_data.phone %}value="{{ form.cleaned_data.phone}}"{% endif %}
{% endif %}
</div>
</div>
<hr> />
{% if form.errors and form.errors.phone %}
<span>{{ form.errors.phone }}</span>
{% endif %}
</div>
<div> <div>
<label for="id_receive_msg_by_email">{{ form.fields.receive_msg_by_email.label }}</label>
<input type="checkbox" name="receive_msg_by_email" id="id_receive_msg_by_email"> <label for="id_extra_phone">{{ form.fields.extra_phone.label }}</label>
{% if form.errors and form.errors.receive_msg_by_email %} <input
<span>{{ form.errors.receive_msg_by_email }}</span> type="text"
{% endif %} name="extra_phone"
</div> id="id_extra_phone"
<div class="button_register"> placeholder="{{ form.fields.extra_phone.label }}"
<button id="registration" onclick="sendRoute(this)"> Разместить объявления </button> {% if form.cleaned_data.extra_phone %}value="{{ form.cleaned_data.extra_phone}}"{% endif %}
</div> />
{% if form.errors and form.errors.extra_phone %}
<span>{{ form.errors.extra_phone }}</span>
{% endif %}
</div>
</div>
<hr>
<div>
<label for="id_receive_msg_by_email">{{ form.fields.receive_msg_by_email.label }}</label>
<input type="checkbox" name="receive_msg_by_email" id="id_receive_msg_by_email">
{% if form.errors and form.errors.receive_msg_by_email %}
<span>{{ form.errors.receive_msg_by_email }}</span>
{% endif %}
</div>
<div class="button_register">
<button id="registration" onclick="sendRoute(this)"> Разместить объявления </button>
</div>
{% endif %}
</form> </form>