fix: Исправлена работа черновиков заказов и добавлено автосохранение статуса
Проблема 1: Ошибка 500 при создании черновика заказа - Поле status в модели Order является ForeignKey на OrderStatus - В коде использовались строковые значения 'draft' и 'new' вместо объектов - Это приводило к TypeError при создании/обновлении заказов Решение: - В DraftOrderService.create_draft: добавлен get_or_create для статуса 'draft' - В DraftOrderService.finalize_draft: добавлен get_or_create для статуса 'new' - В DraftOrderService.get_user_drafts: заменен фильтр status='draft' на status__code='draft' - В DraftOrderService.delete_old_drafts: заменен фильтр status='draft' на status__code='draft' - В cleanup_draft_orders.py: исправлен фильтр в режиме dry-run Проблема 2: Отсутствие автосохранения при изменении статуса - Поле status не отслеживалось в autosave.js - При смене статуса заказ не сохранялся автоматически Решение: - Добавлено поле 'select[name="status"]' в список отслеживаемых полей - Добавлен сбор значения статуса в функции collectFormData - Добавлено 'status': 'orders.OrderStatus' в fk_fields для обработки на сервере Дополнительно: - Добавлено автосохранение полей адреса доставки (улица, дом, квартира и т.д.) - Добавлено автосохранение полей получателя (имя, телефон) - Добавлена автоматическая установка address_mode='new' при наличии адреса Файлы: - orders/services/draft_service.py - orders/management/commands/cleanup_draft_orders.py - orders/static/orders/js/autosave.js 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,7 @@ class Command(BaseCommand):
|
||||
|
||||
cutoff_date = timezone.now() - timedelta(days=days)
|
||||
old_drafts = Order.objects.filter(
|
||||
status='draft',
|
||||
status__code='draft',
|
||||
last_autosave_at__lt=cutoff_date
|
||||
)
|
||||
count = old_drafts.count()
|
||||
|
||||
Reference in New Issue
Block a user