Улучшения в моделях заказов и комплектов

## Изменения:

### 1. ProductKit - расчет цены для вариантов товаров
- Добавлена обработка variant_group в методах расчета base_price
- Теперь учитываются варианты товаров при расчете стоимости комплекта

### 2. DraftOrderService - упрощение логики автосохранения
- Удалена проверка is_draft() при обновлении (позволяет обновлять заказы в других статусах)
- Улучшена документация метода update_draft

### 3. Шаблоны и скрипты
- Обновлены шаблоны форм создания/редактирования комплектов
- Обновлены скрипты автосохранения

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-12 11:34:06 +03:00
parent 77064a274f
commit 46578382b0
9 changed files with 203 additions and 68 deletions

View File

@@ -64,7 +64,7 @@ class DraftOrderService:
@staticmethod
def update_draft(order_id, user, data):
"""
Обновляет существующий черновик заказа.
Обновляет существующий заказ (автосохранение).
Args:
order_id (int): ID заказа
@@ -76,14 +76,11 @@ class DraftOrderService:
Raises:
Order.DoesNotExist: Если заказ не найден
ValidationError: Если заказ не является черновиком или данные невалидны
ValidationError: Если данные невалидны
"""
with transaction.atomic():
order = Order.objects.select_for_update().get(pk=order_id)
if not order.is_draft():
raise ValidationError("Можно обновлять только черновики заказов")
# Обновляем только переданные поля
# ForeignKey поля требуют специальной обработки
fk_fields = {