Добавлена автогенерация и валидация уникальности артикулов для всех типов товаров

- Добавлен миксин SKUUniqueMixin для единообразной валидации артикулов
- Валидация проверяет уникальность SKU среди Product, ProductKit, ProductCategory, ConfigurableProduct
- Реализована автогенерация артикулов для ConfigurableProduct (формат VAR-XXXXXX)
- Добавлен новый тип счетчика 'configurable' в SKUCounter
- Обновлены формы Product, ProductKit, ProductCategory, ConfigurableProduct
- Рефакторинг методов clean() в формах: валидация имени вынесена в clean_name()
- Добавлена функция generate_configurable_sku() в sku_generator.py
- Обновлена функция ensure_sku_unique() для проверки ConfigurableProduct
- Добавлен метод save() в модель ConfigurableProduct для автогенерации SKU
- Обновлен шаблон configurableproduct_form.html с отображением help_text для SKU

Код стал чистым, без дублирования логики валидации.
This commit is contained in:
2025-12-30 10:47:03 +03:00
parent a95bd56b2b
commit 577401447b
6 changed files with 135 additions and 30 deletions

View File

@@ -87,6 +87,7 @@ input[name*="DELETE"] {
<div class="mb-3">
<label for="{{ form.sku.id_for_label }}" class="form-label">Артикул</label>
{{ form.sku }}
<div class="form-text">{{ form.fields.sku.help_text }}</div>
{% if form.sku.errors %}
<div class="text-danger small">{{ form.sku.errors.0 }}</div>
{% endif %}