Commit Graph

2 Commits

Author SHA1 Message Date
d3ac875a0e 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>
2025-11-14 23:00:24 +03:00
1edeaeb552 Добавлена поддержка черновиков заказов (Этап 3/3): JavaScript, UI и cleanup
JavaScript:
- Создан autosave.js: модуль автосохранения черновиков
- Debouncing с задержкой 3 секунды
- Визуальный индикатор статуса сохранения
- Автоматическое отслеживание изменений в полях формы и formset

UI обновления:
- order_form.html: добавлен data-атрибут is-draft и подключение autosave.js
- order_list.html: добавлен badge "Черновик" для черновиков в списке заказов

Management команда:
- cleanup_draft_orders: очистка старых черновиков (по умолчанию 30 дней)
- Поддержка --dry-run для предпросмотра
- Автоматическое удаление связанных временных комплектов

Использование:
- python manage.py cleanup_draft_orders --days=30
- python manage.py cleanup_draft_orders --days=7 --dry-run

Система черновиков полностью готова к использованию!

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 22:38:10 +03:00