Упрощение системы получателей доставки
- Удалено избыточное поле customer_is_recipient из модели Order - Добавлено свойство @property is_customer_recipient для обратной совместимости - Заменены радиокнопки recipient_mode на чекбокс 'Другой получатель' в форме - Добавлено поле recipient_source для выбора между историей и новым получателем - Обновлен AddressService.process_recipient_from_form() для работы с чекбоксом - Обновлены шаблоны: order_form.html (чекбокс вместо радиокнопок) и order_detail.html - Удалено customer_is_recipient из admin и demo команды - Создана миграция для удаления поля customer_is_recipient Логика упрощена: recipient is None = получатель = покупатель, иначе - отдельный получатель
This commit is contained in:
@@ -70,14 +70,16 @@ class AddressService:
|
||||
Returns:
|
||||
Recipient or None: Получатель для привязки к заказу или None
|
||||
"""
|
||||
recipient_mode = form_data.get('recipient_mode')
|
||||
|
||||
# Если режим "покупатель = получатель" - возвращаем None
|
||||
if recipient_mode == 'customer':
|
||||
# Если чекбокс "Другой получатель" не включен - возвращаем None (получатель = покупатель)
|
||||
other_recipient = form_data.get('other_recipient', False)
|
||||
if not other_recipient:
|
||||
return None
|
||||
|
||||
# Определяем источник получателя
|
||||
recipient_source = form_data.get('recipient_source', 'new')
|
||||
|
||||
# Если режим "выбрать из истории" - возвращаем выбранного получателя
|
||||
if recipient_mode == 'history':
|
||||
if recipient_source == 'history':
|
||||
recipient_id = form_data.get('recipient_from_history')
|
||||
if recipient_id:
|
||||
try:
|
||||
@@ -86,7 +88,7 @@ class AddressService:
|
||||
return None
|
||||
|
||||
# Если режим "новый получатель"
|
||||
if recipient_mode == 'new':
|
||||
if recipient_source == 'new':
|
||||
name = form_data.get('recipient_name', '').strip()
|
||||
phone = form_data.get('recipient_phone', '').strip()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user