symposion_app/registrasion/admin.py

94 lines
2.3 KiB
Python

from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
import nested_admin
from registrasion import models as rego
# Inventory admin
class ProductInline(admin.TabularInline):
model = rego.Product
@admin.register(rego.Category)
class CategoryAdmin(admin.ModelAdmin):
model = rego.Category
verbose_name_plural = _("Categories")
inlines = [
ProductInline,
]
admin.site.register(rego.Product)
# Discounts
class DiscountForProductInline(admin.TabularInline):
model = rego.DiscountForProduct
verbose_name = _("Product included in discount")
verbose_name_plural = _("Products included in discount")
class DiscountForCategoryInline(admin.TabularInline):
model = rego.DiscountForCategory
verbose_name = _("Category included in discount")
verbose_name_plural = _("Categories included in discount")
@admin.register(
rego.TimeOrStockLimitDiscount,
rego.IncludedProductDiscount,
)
class DiscountAdmin(admin.ModelAdmin):
inlines = [
DiscountForProductInline,
DiscountForCategoryInline,
]
# Vouchers
class VoucherDiscountInline(nested_admin.NestedStackedInline):
model = rego.VoucherDiscount
verbose_name = _("Discount")
# TODO work out why we're allowed to add more than one?
max_num = 1
extra = 1
inlines = [
DiscountForProductInline,
DiscountForCategoryInline,
]
class VoucherEnablingConditionInline(nested_admin.NestedStackedInline):
model = rego.VoucherEnablingCondition
verbose_name = _("Product and category enabled by voucher")
verbose_name_plural = _("Products and categories enabled by voucher")
# TODO work out why we're allowed to add more than one?
max_num = 1
extra = 1
@admin.register(rego.Voucher)
class VoucherAdmin(nested_admin.NestedAdmin):
model = rego.Voucher
inlines = [
VoucherDiscountInline,
VoucherEnablingConditionInline,
]
# Enabling conditions
@admin.register(rego.ProductEnablingCondition)
class ProductEnablingConditionAdmin(nested_admin.NestedAdmin):
model = rego.ProductEnablingCondition
# Enabling conditions
@admin.register(rego.CategoryEnablingCondition)
class CategoryEnablingConditionAdmin(nested_admin.NestedAdmin):
model = rego.CategoryEnablingCondition