diff --git a/hub/services/admin/pricing.py b/hub/services/admin/pricing.py
index ac9711d..fe8c03e 100644
--- a/hub/services/admin/pricing.py
+++ b/hub/services/admin/pricing.py
@@ -322,10 +322,26 @@ class DiscountTierInline(admin.TabularInline):
class ProgressiveDiscountModelAdmin(admin.ModelAdmin):
"""Admin configuration for ProgressiveDiscountModel"""
- list_display = ("name", "description", "active")
+ list_display = ("name", "description", "active", "admin_display_discount_tiers")
search_fields = ("name", "description")
inlines = [DiscountTierInline]
+ def admin_display_discount_tiers(self, obj):
+ """Display discount tiers in admin list view"""
+ tiers = obj.tiers.all().order_by("min_units")
+ if not tiers:
+ return "No discount tiers"
+ return format_html(
+ "
".join(
+ [
+ f"{tier.min_units}-{tier.max_units if tier.max_units else '∞'} units: {tier.discount_percent}%"
+ for tier in tiers
+ ]
+ )
+ )
+
+ admin_display_discount_tiers.short_description = "Discount Tiers"
+
@admin.register(VSHNAppCatPrice)
class VSHNAppCatPriceAdmin(admin.ModelAdmin):
@@ -350,7 +366,12 @@ class VSHNAppCatPriceAdmin(admin.ModelAdmin):
if not fees:
return "No base fees"
return format_html(
- "
".join([f"{fee.amount} {fee.currency} ({fee.get_service_level_display()})" for fee in fees])
+ "
".join(
+ [
+ f"{fee.amount} {fee.currency} ({fee.get_service_level_display()})"
+ for fee in fees
+ ]
+ )
)
admin_display_base_fees.short_description = "Base Fees"
@@ -618,7 +639,12 @@ class VSHNAppCatAddonAdmin(admin.ModelAdmin):
if not fees:
return "No base fees set"
return format_html(
- "
".join([f"{fee.amount} {fee.currency} ({fee.get_service_level_display()})" for fee in fees])
+ "
".join(
+ [
+ f"{fee.amount} {fee.currency} ({fee.get_service_level_display()})"
+ for fee in fees
+ ]
+ )
)
elif obj.addon_type == "UR": # Unit Rate
rates = obj.unit_rates.all()