service categories

This commit is contained in:
Tobias Brunner 2025-01-27 15:23:50 +01:00
parent 79a8c6f280
commit 17b6c4c9ee
No known key found for this signature in database
6 changed files with 154 additions and 5 deletions

View file

@ -1,6 +1,15 @@
from django.contrib import admin
from django.utils.html import format_html
from .models import CloudProvider, Country, ServiceLevel, Service
from .models import CloudProvider, Country, ServiceLevel, Service, Category
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ("name", "slug", "parent", "order")
list_filter = ("parent",)
search_fields = ("name", "description")
prepopulated_fields = {"slug": ("name",)}
ordering = ("order", "name")
@admin.register(CloudProvider)
@ -30,10 +39,17 @@ class ServiceLevelAdmin(admin.ModelAdmin):
@admin.register(Service)
class ServiceAdmin(admin.ModelAdmin):
list_display = ("name", "cloud_provider", "service_level", "price", "logo_preview")
list_filter = ("cloud_provider", "service_level", "countries")
list_display = (
"name",
"cloud_provider",
"service_level",
"price",
"logo_preview",
"category_list",
)
list_filter = ("cloud_provider", "service_level", "countries", "categories")
search_fields = ("name", "description")
filter_horizontal = ("countries",)
filter_horizontal = ("countries", "categories")
def logo_preview(self, obj):
if obj.logo:
@ -41,3 +57,8 @@ class ServiceAdmin(admin.ModelAdmin):
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
)
return "No logo"
def category_list(self, obj):
return ", ".join([cat.name for cat in obj.categories.all()])
category_list.short_description = "Categories"