58 lines
1.5 KiB
Python
Executable File
58 lines
1.5 KiB
Python
Executable File
from django.contrib import admin
|
|
from polymorphic.admin import (
|
|
PolymorphicChildModelAdmin,
|
|
PolymorphicChildModelFilter,
|
|
)
|
|
|
|
from outbo.apps.core.admin import PolymorphicParentModelAdmin
|
|
from outbo.apps.organizations.models import (
|
|
Organization,
|
|
AgencyOrganization,
|
|
ClientOrganization,
|
|
SupplierOrganization,
|
|
Brand,
|
|
Category,
|
|
)
|
|
|
|
|
|
class _OrganizationChildAdmin(PolymorphicChildModelAdmin):
|
|
base_model = Organization
|
|
|
|
|
|
@admin.register(AgencyOrganization)
|
|
class AgencyOrganizationAdmin(_OrganizationChildAdmin):
|
|
base_model = AgencyOrganization
|
|
|
|
|
|
@admin.register(ClientOrganization)
|
|
class ClientOrganizationAdmin(_OrganizationChildAdmin):
|
|
base_model = ClientOrganization
|
|
search_fields = ["name"]
|
|
|
|
|
|
@admin.register(SupplierOrganization)
|
|
class SupplierOrganizationAdmin(_OrganizationChildAdmin):
|
|
base_model = SupplierOrganization
|
|
search_fields = ["name"]
|
|
|
|
|
|
@admin.register(Organization)
|
|
class OrganizationAdmin(PolymorphicParentModelAdmin):
|
|
base_model = Organization
|
|
child_models = (AgencyOrganization, ClientOrganization, SupplierOrganization)
|
|
list_filter = (PolymorphicChildModelFilter,)
|
|
search_fields = ["name"]
|
|
|
|
|
|
@admin.register(Brand)
|
|
class BrandAdmin(admin.ModelAdmin):
|
|
autocomplete_fields = ["client", "suppliers", "categories"]
|
|
|
|
|
|
@admin.register(Category)
|
|
class CategoryAdmin(admin.ModelAdmin):
|
|
search_fields = ["name"]
|
|
|
|
|
|
# NOTE: https://stackoverflow.com/questions/9879687/adding-a-manytomanywidget-to-the-reverse-of-a-manytomanyfield-in-the-django-admi/13189954
|