website/hub/services/admin.py

44 lines
1.3 KiB
Python
Raw Normal View History

2025-01-27 14:58:23 +01:00
from django.contrib import admin
2025-01-27 15:14:58 +01:00
from django.utils.html import format_html
2025-01-27 14:58:23 +01:00
from .models import CloudProvider, Country, ServiceLevel, Service
@admin.register(CloudProvider)
class CloudProviderAdmin(admin.ModelAdmin):
2025-01-27 15:14:58 +01:00
list_display = ("name", "logo_preview")
2025-01-27 14:58:23 +01:00
search_fields = ("name",)
2025-01-27 15:14:58 +01:00
def logo_preview(self, obj):
if obj.logo:
return format_html(
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
)
return "No logo"
2025-01-27 14:58:23 +01:00
@admin.register(Country)
class CountryAdmin(admin.ModelAdmin):
list_display = ("name", "code")
search_fields = ("name", "code")
@admin.register(ServiceLevel)
class ServiceLevelAdmin(admin.ModelAdmin):
list_display = ("name", "response_time")
search_fields = ("name",)
@admin.register(Service)
class ServiceAdmin(admin.ModelAdmin):
2025-01-27 15:14:58 +01:00
list_display = ("name", "cloud_provider", "service_level", "price", "logo_preview")
2025-01-27 14:58:23 +01:00
list_filter = ("cloud_provider", "service_level", "countries")
search_fields = ("name", "description")
filter_horizontal = ("countries",)
2025-01-27 15:14:58 +01:00
def logo_preview(self, obj):
if obj.logo:
return format_html(
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
)
return "No logo"