43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from django.contrib import admin
|
|
from django.utils.html import format_html
|
|
from .models import CloudProvider, Country, ServiceLevel, Service
|
|
|
|
|
|
@admin.register(CloudProvider)
|
|
class CloudProviderAdmin(admin.ModelAdmin):
|
|
list_display = ("name", "logo_preview")
|
|
search_fields = ("name",)
|
|
|
|
def logo_preview(self, obj):
|
|
if obj.logo:
|
|
return format_html(
|
|
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
|
|
)
|
|
return "No logo"
|
|
|
|
|
|
@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):
|
|
list_display = ("name", "cloud_provider", "service_level", "price", "logo_preview")
|
|
list_filter = ("cloud_provider", "service_level", "countries")
|
|
search_fields = ("name", "description")
|
|
filter_horizontal = ("countries",)
|
|
|
|
def logo_preview(self, obj):
|
|
if obj.logo:
|
|
return format_html(
|
|
'<img src="{}" style="max-height: 50px;"/>', obj.logo.url
|
|
)
|
|
return "No logo"
|