Перемещены поля адреса доставки под кнопки выбора типа доставки

- Все поля ввода адреса доставки теперь расположены под кнопками "С ДОСТАВКОЙ" / "САМОВЫВОЗ"
- Поля адреса скрыты когда выбран вариант "САМОВЫВОЗ"
- Поля адреса видны только когда выбрана "С ДОСТАВКОЙ"
- Переименован div с id="delivery-fields" на id="delivery-mode-fields" для лучшей организации
- Обновлена функция syncDeliveryType() для управления видимостью полей доставки
- Улучшена структура формы для лучшей UX

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-11 11:31:07 +03:00
parent 8044c4f0c0
commit 2b652253fe

View File

@@ -207,36 +207,34 @@
<!-- Скрытое поле для передачи значения is_delivery -->
<input type="hidden" id="{{ form.is_delivery.id_for_label }}" name="{{ form.is_delivery.name }}" value="on">
<div class="row">
<div class="col-md-6">
<!-- Кнопки выбора типа доставки -->
<div class="mb-3">
<label class="form-label d-block mb-2">Тип доставки</label>
<div class="btn-group w-100" role="group">
<input type="radio" class="btn-check" name="delivery-type" id="delivery-type-delivery" value="delivery" checked>
<label class="btn btn-outline-primary" for="delivery-type-delivery">
<i class="bi bi-truck"></i> С ДОСТАВКОЙ
</label>
<!-- Кнопки выбора типа доставки -->
<div class="mb-3">
<label class="form-label d-block mb-2">Тип доставки</label>
<div class="btn-group w-100" role="group">
<input type="radio" class="btn-check" name="delivery-type" id="delivery-type-delivery" value="delivery" checked>
<label class="btn btn-outline-primary" for="delivery-type-delivery">
<i class="bi bi-truck"></i> С ДОСТАВКОЙ
</label>
<input type="radio" class="btn-check" name="delivery-type" id="delivery-type-pickup" value="pickup">
<label class="btn btn-outline-primary" for="delivery-type-pickup">
<i class="bi bi-shop"></i> САМОВЫВОЗ
</label>
</div>
</div>
<!-- Чекбокс "Покупатель = получатель" -->
<div class="mb-3 form-check">
{{ form.customer_is_recipient }}
<label class="form-check-label" for="{{ form.customer_is_recipient.id_for_label }}">
Покупатель является получателем
</label>
</div>
<input type="radio" class="btn-check" name="delivery-type" id="delivery-type-pickup" value="pickup">
<label class="btn btn-outline-primary" for="delivery-type-pickup">
<i class="bi bi-shop"></i> САМОВЫВОЗ
</label>
</div>
</div>
<!-- Поля получателя (показываются когда покупатель != получатель) -->
<div class="row" id="recipient-fields" style="display: none;">
<!-- Поля доставки (показываются только если выбрана доставка) -->
<div id="delivery-mode-fields" style="display: block;">
<!-- Чекбокс "Покупатель = получатель" -->
<div class="mb-3 form-check">
{{ form.customer_is_recipient }}
<label class="form-check-label" for="{{ form.customer_is_recipient.id_for_label }}">
Покупатель является получателем
</label>
</div>
<!-- Поля получателя (показываются когда покупатель != получатель) -->
<div class="row" id="recipient-fields" style="display: none;">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.recipient_name.id_for_label }}" class="form-label">
@@ -259,10 +257,10 @@
{% endif %}
</div>
</div>
</div>
</div>
<div class="row" id="delivery-fields">
<!-- Способ указания адреса -->
<div class="row">
<div class="col-12">
<div class="mb-3">
<label class="form-label">{{ form.address_mode.label }}</label>
@@ -408,16 +406,17 @@
</div>
</div>
<div class="row" id="pickup-fields" style="display: none;">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.pickup_shop.id_for_label }}" class="form-label">
Точка самовывоза
</label>
{{ form.pickup_shop }}
{% if form.pickup_shop.errors %}
<div class="text-danger">{{ form.pickup_shop.errors }}</div>
{% endif %}
<div class="row" id="pickup-fields" style="display: none;">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.pickup_shop.id_for_label }}" class="form-label">
Точка самовывоза
</label>
{{ form.pickup_shop }}
{% if form.pickup_shop.errors %}
<div class="text-danger">{{ form.pickup_shop.errors }}</div>
{% endif %}
</div>
</div>
</div>
</div>
@@ -984,7 +983,7 @@ if (typeof $ !== 'undefined') {
// === УПРАВЛЕНИЕ ТИПОМ ДОСТАВКИ (КНОПКИ) ===
const deliveryTypeRadios = document.querySelectorAll('input[name="delivery-type"]');
const isDeliveryCheckbox = document.getElementById('{{ form.is_delivery.id_for_label }}');
const deliveryFields = document.getElementById('delivery-fields');
const deliveryModeFields = document.getElementById('delivery-mode-fields');
const pickupFields = document.getElementById('pickup-fields');
function syncDeliveryType() {
@@ -993,14 +992,14 @@ if (typeof $ !== 'undefined') {
if (selectedType === 'delivery') {
// Доставка
isDeliveryCheckbox.checked = true;
deliveryFields.style.display = '';
deliveryModeFields.style.display = 'block';
pickupFields.style.display = 'none';
console.log('[DELIVERY TYPE] Delivery selected');
} else {
// Самовывоз
isDeliveryCheckbox.checked = false;
deliveryFields.style.display = 'none';
pickupFields.style.display = '';
deliveryModeFields.style.display = 'none';
pickupFields.style.display = 'block';
console.log('[DELIVERY TYPE] Pickup selected');
}
}