Реализовано преобразование временных комплектов в постоянные

Views (products/views/productkit_views.py):
- ProductKitMakePermanentView: view для преобразования временного комплекта
  * Доступен только для временных комплектов (is_temporary=True)
  * Позволяет отредактировать название, описание, категории, теги, цену
  * Вызывает метод make_permanent() модели
  * Перенаправляет на детальную страницу комплекта после успеха

URLs (products/urls.py):
- /products/kits/<pk>/make-permanent/ - страница преобразования

Templates:
- productkit_make_permanent.html: форма преобразования с составом и ценой
- order_detail.html: добавлена кнопка "Сделать постоянным" для временных комплектов

Теперь флорист может:
1. Увидеть временный комплект в заказе с badge "Временный"
2. Нажать "Сделать постоянным"
3. Отредактировать название, добавить категории
4. Сохранить - комплект появится в каталоге

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-08 15:19:56 +03:00
parent 0e220ed169
commit a1df188b2a
5 changed files with 225 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
# Generated by Django 5.0.10 on 2025-11-08 11:52
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0004_orderitem_is_custom_price'),
('products', '0005_remove_kititem_notes'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AddField(
model_name='productkit',
name='is_temporary',
field=models.BooleanField(default=False, help_text='Временные комплекты не показываются в каталоге и создаются для конкретного заказа', verbose_name='Временный комплект'),
),
migrations.AddField(
model_name='productkit',
name='order',
field=models.ForeignKey(blank=True, help_text='Заказ, для которого создан временный комплект', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='temporary_kits', to='orders.order', verbose_name='Заказ'),
),
migrations.AddIndex(
model_name='productkit',
index=models.Index(fields=['is_temporary'], name='products_pr_is_temp_e407a2_idx'),
),
migrations.AddIndex(
model_name='productkit',
index=models.Index(fields=['order'], name='products_pr_order_i_2b5675_idx'),
),
]