Добавлена поддержка черновиков заказов (Этап 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>
This commit is contained in:
2025-11-08 22:38:10 +03:00
parent 961a5d52da
commit 1edeaeb552
4 changed files with 610 additions and 2 deletions

View File

@@ -16,7 +16,7 @@
</div>
</div>
<form method="post" id="order-form">
<form method="post" id="order-form" {% if is_draft %}data-is-draft="true"{% endif %}>
{% csrf_token %}
<!-- Основная информация -->
@@ -791,4 +791,9 @@ document.addEventListener('DOMContentLoaded', function() {
</div>
</div>
</div>
<!-- Скрипт автосохранения черновиков -->
{% if is_draft %}
<script src="{% static 'orders/js/autosave.js' %}"></script>
{% endif %}
{% endblock %}

View File

@@ -130,7 +130,11 @@
{% endif %}
</td>
<td>
{% if order.status == 'new' %}
{% if order.status == 'draft' %}
<span class="badge bg-secondary">
<i class="bi bi-pencil"></i> Черновик
</span>
{% elif order.status == 'new' %}
<span class="badge bg-primary">Новый</span>
{% elif order.status == 'confirmed' %}
<span class="badge bg-success">Подтвержден</span>