feat(products): добавить интерфейс маркетинговых флагов
Добавлены поля is_new, is_popular, is_special в форму продукта. Настроено отображение полей в виде переключателей (switch). Добавлено отображение бейджей флагов в списке товаров и на странице детализации продукта.
This commit is contained in:
@@ -98,7 +98,8 @@ class ProductForm(SKUUniqueMixin, forms.ModelForm):
|
||||
model = Product
|
||||
fields = [
|
||||
'name', 'sku', 'description', 'short_description', 'categories',
|
||||
'tags', 'base_unit', 'price', 'sale_price', 'status'
|
||||
'tags', 'base_unit', 'price', 'sale_price', 'status',
|
||||
'is_new', 'is_popular', 'is_special'
|
||||
]
|
||||
labels = {
|
||||
'name': 'Название',
|
||||
@@ -149,6 +150,13 @@ class ProductForm(SKUUniqueMixin, forms.ModelForm):
|
||||
self.fields['base_unit'].required = False
|
||||
self.fields['base_unit'].help_text = 'Базовая единица для учета товара на складе. На основе этой единицы можно создать единицы продажи.'
|
||||
|
||||
# Маркетинговые флаги (switch-стиль)
|
||||
for flag_field in ['is_new', 'is_popular', 'is_special']:
|
||||
self.fields[flag_field].widget.attrs.update({
|
||||
'class': 'form-check-input',
|
||||
'role': 'switch'
|
||||
})
|
||||
|
||||
def clean_name(self):
|
||||
"""Валидация уникальности имени для активных товаров"""
|
||||
name = self.cleaned_data.get('name')
|
||||
|
||||
Reference in New Issue
Block a user