Files
octopus/myproject/integrations/admin.py
Andrey Smakotin 1fb280607a feat(integrations): добавить поле primary_category и маппинг категорий для интеграций
Добавлена поддержка выбора основной категории (primary_category) для товаров и наборов, а также новая модель IntegrationCategoryMapping для связи категорий с внешними площадками. Теперь можно указать категорию товара, которая будет использоваться при экспорте на внешние площадки (Recommerce, WooCommerce и др.), с возможностью настройки маппинга категорий для каждого типа интеграции.
2026-01-14 01:53:38 +03:00

49 lines
2.3 KiB
Python

from django.contrib import admin
from .models import RecommerceIntegration, WooCommerceIntegration, IntegrationCategoryMapping
@admin.register(RecommerceIntegration)
class RecommerceIntegrationAdmin(admin.ModelAdmin):
"""Админка для Recommerce интеграции"""
list_display = ['__str__', 'is_active', 'is_configured', 'updated_at']
list_filter = ['is_active']
readonly_fields = ['created_at', 'updated_at']
fieldsets = (
('Основное', {'fields': ('name', 'is_active')}),
('API настройки', {'fields': ('store_url', 'api_token')}),
('Синхронизация', {'fields': ('auto_sync_products', 'import_orders')}),
('Служебное', {'fields': ('created_at', 'updated_at'), 'classes': ('collapse',)}),
)
@admin.register(WooCommerceIntegration)
class WooCommerceIntegrationAdmin(admin.ModelAdmin):
"""Админка для WooCommerce интеграции"""
list_display = ['__str__', 'is_active', 'is_configured', 'updated_at']
list_filter = ['is_active']
readonly_fields = ['created_at', 'updated_at']
fieldsets = (
('Основное', {'fields': ('name', 'is_active')}),
('API настройки', {'fields': ('store_url', 'consumer_key', 'consumer_secret', 'api_version')}),
('Синхронизация', {'fields': ('auto_sync_products', 'import_orders')}),
('Служебное', {'fields': ('created_at', 'updated_at'), 'classes': ('collapse',)}),
)
@admin.register(IntegrationCategoryMapping)
class IntegrationCategoryMappingAdmin(admin.ModelAdmin):
"""Админка для маппинга категорий на внешние площадки"""
list_display = ['category', 'integration_type', 'external_category_sku', 'external_category_name', 'updated_at']
list_filter = ['integration_type']
search_fields = ['category__name', 'category__sku', 'external_category_sku', 'external_category_name']
autocomplete_fields = ['category']
readonly_fields = ['created_at', 'updated_at']
fieldsets = (
('Связь', {'fields': ('category', 'integration_type')}),
('Внешняя категория', {'fields': ('external_category_sku', 'external_category_name')}),
('Служебное', {'fields': ('created_at', 'updated_at'), 'classes': ('collapse',)}),
)