Исправление ошибки POS: разрешено добавление в корзину для PlatformAdmin (использование session_id вместо пользователя). Включены изменения по AI названиям букетов.

This commit is contained in:
2026-01-22 20:29:05 +03:00
parent 01873be15d
commit 22e300394b
13 changed files with 739 additions and 20 deletions

View File

@@ -13,6 +13,7 @@ from .models import ProductPhoto, ProductKitPhoto, ProductCategoryPhoto
from .models import ProductVariantGroup, KitItemPriority, SKUCounter, CostPriceHistory
from .models import ConfigurableProduct, ConfigurableProductOption, ConfigurableProductAttribute
from .models import UnitOfMeasure, ProductSalesUnit
from .models import BouquetName
from .admin_displays import (
format_quality_badge,
format_quality_display,
@@ -1086,3 +1087,42 @@ class ConfigurableProductAdmin(TenantAdminOnlyMixin, admin.ModelAdmin):
count
)
get_options_count.short_description = 'Вариантов'
@admin.register(BouquetName)
class BouquetNameAdmin(TenantAdminOnlyMixin, admin.ModelAdmin):
"""
Административный интерфейс для управления названиями букетов
"""
list_display = ('name', 'language', 'is_approved', 'usage_count', 'generated_at')
list_filter = ('language', 'is_approved')
search_fields = ('name',)
filter_horizontal = ('color_tags', 'occasion_tags', 'style_tags')
actions = ['approve_selected', 'reject_selected']
fieldsets = (
('Основная информация', {
'fields': ('name', 'language', 'is_approved')
}),
('Теги', {
'fields': ('color_tags', 'occasion_tags', 'style_tags')
}),
('Статистика', {
'fields': ('usage_count', 'generated_at', 'approved_at')
}),
)
readonly_fields = ('usage_count', 'generated_at', 'approved_at')
def approve_selected(self, request, queryset):
from django.db import models
queryset.update(is_approved=True, approved_at=models.DateTimeField(auto_now=True))
self.message_user(request, "Выбранные названия были одобрены")
approve_selected.short_description = "Одобрить выбранные названия"
def reject_selected(self, request, queryset):
queryset.update(is_approved=False, approved_at=None)
self.message_user(request, "Выбранные названия были отклонены")
reject_selected.short_description = "Отклонить выбранные названия"