Упрощение системы получателей доставки

- Удалено избыточное поле 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:
2025-12-24 17:54:57 +03:00
parent 9f4f03e340
commit d62caa924b
9 changed files with 168 additions and 82 deletions

View File

@@ -94,13 +94,7 @@ class Order(models.Model):
)
# Информация о получателе
customer_is_recipient = models.BooleanField(
default=True,
verbose_name="Покупатель является получателем",
help_text="Если отмечено, данные получателя не требуются отдельно"
)
# Получатель (если покупатель != получатель)
# Получатель (если None - получатель = покупатель, иначе - отдельный получатель)
recipient = models.ForeignKey(
Recipient,
on_delete=models.SET_NULL,
@@ -324,3 +318,8 @@ class Order(models.Model):
if hasattr(self, 'delivery') and self.delivery:
return self.delivery.pickup_warehouse
return None
@property
def is_customer_recipient(self):
"""Является ли покупатель получателем (обратная совместимость)"""
return self.recipient is None