This commit is contained in:
parent
e61bf9076f
commit
6c7f945c7a
1 changed files with 49 additions and 0 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
from django.contrib import admin, messages
|
from django.contrib import admin, messages
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from django_jsonform.widgets import JSONFormWidget
|
||||||
|
|
||||||
from servala.core.forms import ControlPlaneAdminForm, ServiceDefinitionAdminForm
|
from servala.core.forms import ControlPlaneAdminForm, ServiceDefinitionAdminForm
|
||||||
from servala.core.models import (
|
from servala.core.models import (
|
||||||
|
|
@ -111,12 +112,60 @@ class ServiceAdmin(admin.ModelAdmin):
|
||||||
autocomplete_fields = ("category",)
|
autocomplete_fields = ("category",)
|
||||||
prepopulated_fields = {"slug": ["name"]}
|
prepopulated_fields = {"slug": ["name"]}
|
||||||
|
|
||||||
|
def get_form(self, request, obj=None, **kwargs):
|
||||||
|
form = super().get_form(request, obj, **kwargs)
|
||||||
|
# JSON schema for external_links field
|
||||||
|
external_links_schema = {
|
||||||
|
"type": "array",
|
||||||
|
"title": "External Links",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"title": "Link",
|
||||||
|
"properties": {
|
||||||
|
"url": {"type": "string", "format": "uri", "title": "URL"},
|
||||||
|
"title": {"type": "string", "title": "Title"},
|
||||||
|
"featured": {
|
||||||
|
"type": "boolean",
|
||||||
|
"title": "Featured",
|
||||||
|
"default": False,
|
||||||
|
"description": "Featured links will be shown on the service list page",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"required": ["url", "title"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
form.base_fields["external_links"].widget = JSONFormWidget(
|
||||||
|
schema=external_links_schema
|
||||||
|
)
|
||||||
|
return form
|
||||||
|
|
||||||
|
|
||||||
@admin.register(CloudProvider)
|
@admin.register(CloudProvider)
|
||||||
class CloudProviderAdmin(admin.ModelAdmin):
|
class CloudProviderAdmin(admin.ModelAdmin):
|
||||||
list_display = ("name",)
|
list_display = ("name",)
|
||||||
search_fields = ("name", "description")
|
search_fields = ("name", "description")
|
||||||
|
|
||||||
|
def get_form(self, request, obj=None, **kwargs):
|
||||||
|
form = super().get_form(request, obj, **kwargs)
|
||||||
|
# JSON schema for external_links field
|
||||||
|
external_links_schema = {
|
||||||
|
"type": "array",
|
||||||
|
"title": "External Links",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"title": "Link",
|
||||||
|
"properties": {
|
||||||
|
"url": {"type": "string", "format": "uri", "title": "URL"},
|
||||||
|
"title": {"type": "string", "title": "Title"},
|
||||||
|
},
|
||||||
|
"required": ["url", "title"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
form.base_fields["external_links"].widget = JSONFormWidget(
|
||||||
|
schema=external_links_schema
|
||||||
|
)
|
||||||
|
return form
|
||||||
|
|
||||||
|
|
||||||
@admin.register(ControlPlane)
|
@admin.register(ControlPlane)
|
||||||
class ControlPlaneAdmin(admin.ModelAdmin):
|
class ControlPlaneAdmin(admin.ModelAdmin):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue