Fix: Enable autosave for delivery address fields with partial data
Исправлена проблема с автосохранением полей адреса доставки. Теперь адрес сохраняется при заполнении любого поля, а не только при наличии улицы и номера дома. Изменения в Backend (address_service.py): - Изменена логика валидации в process_address_from_form() - Теперь адрес сохраняется если заполнено хотя бы одно поле - Удалено жёсткое требование заполнения street и building_number - Проверяем наличие данных во всех полях адреса Изменения в Frontend (autosave.js): - Переработана логика сбора данных адреса - address_mode='new' устанавливается при заполнении любого поля адреса - Все непустые поля адреса отправляются на сервер - Используется более элегантный подход с Object.values() и .some() Теперь автосохранение работает корректно: - Заполнение поля "Улица" → автосохранение срабатывает - Заполнение "Номер дома" → автосохранение срабатывает - Заполнение любого другого поля адреса → автосохранение срабатывает - После перезагрузки страницы все данные восстанавливаются 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -74,11 +74,23 @@ class AddressService:
|
||||
street = form_data.get('address_street', '').strip()
|
||||
building_number = form_data.get('address_building_number', '').strip()
|
||||
|
||||
if not street or not building_number:
|
||||
# Если обязательные поля не заполнены, возвращаем None
|
||||
# Для автосохранения разрешаем сохранять адрес даже если не все поля заполнены
|
||||
# Проверяем только что хотя бы одно поле адреса заполнено
|
||||
has_any_address_data = any([
|
||||
street,
|
||||
building_number,
|
||||
form_data.get('address_apartment_number', '').strip(),
|
||||
form_data.get('address_entrance', '').strip(),
|
||||
form_data.get('address_floor', '').strip(),
|
||||
form_data.get('address_intercom_code', '').strip(),
|
||||
form_data.get('address_delivery_instructions', '').strip(),
|
||||
])
|
||||
|
||||
if not has_any_address_data:
|
||||
# Если все поля адреса пустые, возвращаем None
|
||||
return None
|
||||
|
||||
# Создаем новый адрес
|
||||
# Создаем новый адрес (даже если не все обязательные поля заполнены)
|
||||
address = AddressService.create_address_from_form_data(form_data)
|
||||
return address
|
||||
|
||||
|
||||
Reference in New Issue
Block a user