Рефакторинг системы вариативных товаров и справочник атрибутов
Основные изменения: - Переименование ConfigurableKitProduct → ConfigurableProduct - Добавлена поддержка Product как варианта (не только ProductKit) - Создан справочник атрибутов (ProductAttribute, ProductAttributeValue) - CRUD для управления атрибутами с inline редактированием значений - Пересозданы миграции с нуля для всех приложений - Добавлена ссылка на атрибуты в навигацию 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -86,14 +86,26 @@ urlpatterns = [
|
||||
path('tags/<int:pk>/update/', views.ProductTagUpdateView.as_view(), name='tag-update'),
|
||||
path('tags/<int:pk>/delete/', views.ProductTagDeleteView.as_view(), name='tag-delete'),
|
||||
|
||||
# CRUD URLs for ConfigurableKitProduct
|
||||
path('configurable-kits/', views.ConfigurableKitProductListView.as_view(), name='configurablekit-list'),
|
||||
path('configurable-kits/create/', views.ConfigurableKitProductCreateView.as_view(), name='configurablekit-create'),
|
||||
path('configurable-kits/<int:pk>/', views.ConfigurableKitProductDetailView.as_view(), name='configurablekit-detail'),
|
||||
path('configurable-kits/<int:pk>/update/', views.ConfigurableKitProductUpdateView.as_view(), name='configurablekit-update'),
|
||||
path('configurable-kits/<int:pk>/delete/', views.ConfigurableKitProductDeleteView.as_view(), name='configurablekit-delete'),
|
||||
# CRUD URLs for ProductAttribute (справочник атрибутов)
|
||||
path('attributes/', views.ProductAttributeListView.as_view(), name='attribute-list'),
|
||||
path('attributes/create/', views.ProductAttributeCreateView.as_view(), name='attribute-create'),
|
||||
path('attributes/<int:pk>/', views.ProductAttributeDetailView.as_view(), name='attribute-detail'),
|
||||
path('attributes/<int:pk>/update/', views.ProductAttributeUpdateView.as_view(), name='attribute-update'),
|
||||
path('attributes/<int:pk>/delete/', views.ProductAttributeDeleteView.as_view(), name='attribute-delete'),
|
||||
|
||||
# API для атрибутов
|
||||
path('api/attributes/create/', views.create_attribute_api, name='api-attribute-create'),
|
||||
path('api/attributes/<int:pk>/values/add/', views.add_attribute_value_api, name='attribute-add-value'),
|
||||
path('api/attributes/<int:pk>/values/<int:value_id>/delete/', views.delete_attribute_value_api, name='attribute-delete-value'),
|
||||
|
||||
# CRUD URLs for ConfigurableProduct
|
||||
path('configurable-kits/', views.ConfigurableProductListView.as_view(), name='configurablekit-list'),
|
||||
path('configurable-kits/create/', views.ConfigurableProductCreateView.as_view(), name='configurablekit-create'),
|
||||
path('configurable-kits/<int:pk>/', views.ConfigurableProductDetailView.as_view(), name='configurablekit-detail'),
|
||||
path('configurable-kits/<int:pk>/update/', views.ConfigurableProductUpdateView.as_view(), name='configurablekit-update'),
|
||||
path('configurable-kits/<int:pk>/delete/', views.ConfigurableProductDeleteView.as_view(), name='configurablekit-delete'),
|
||||
|
||||
# API для управления вариантами ConfigurableKitProduct
|
||||
# API для управления вариантами ConfigurableProduct
|
||||
path('configurable-kits/<int:pk>/options/add/', views.add_option_to_configurable, name='configurablekit-add-option'),
|
||||
path('configurable-kits/<int:pk>/options/<int:option_id>/remove/', views.remove_option_from_configurable, name='configurablekit-remove-option'),
|
||||
path('configurable-kits/<int:pk>/options/<int:option_id>/set-default/', views.set_option_as_default, name='configurablekit-set-default-option'),
|
||||
|
||||
Reference in New Issue
Block a user