Add initial model admin
This commit is contained in:
parent
56169de014
commit
f7f262ec75
1 changed files with 139 additions and 0 deletions
139
src/servala/core/admin.py
Normal file
139
src/servala/core/admin.py
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from servala.core.models import (
|
||||||
|
BillingEntity,
|
||||||
|
CloudProvider,
|
||||||
|
ControlPlane,
|
||||||
|
Organization,
|
||||||
|
OrganizationMembership,
|
||||||
|
OrganizationOrigin,
|
||||||
|
Plan,
|
||||||
|
Service,
|
||||||
|
ServiceCategory,
|
||||||
|
ServiceOffering,
|
||||||
|
User,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(User)
|
||||||
|
class UserAdmin(admin.ModelAdmin):
|
||||||
|
list_display = (
|
||||||
|
"email",
|
||||||
|
"first_name",
|
||||||
|
"last_name",
|
||||||
|
"company",
|
||||||
|
"is_staff",
|
||||||
|
"is_superuser",
|
||||||
|
)
|
||||||
|
list_filter = ("is_staff", "is_superuser")
|
||||||
|
search_fields = ("email", "first_name", "last_name", "company")
|
||||||
|
ordering = ("email",)
|
||||||
|
fieldsets = (
|
||||||
|
(None, {"fields": ("email", "password")}),
|
||||||
|
(_("Personal info"), {"fields": ("first_name", "last_name", "company")}),
|
||||||
|
(_("Permissions"), {"fields": ("is_staff", "is_superuser")}),
|
||||||
|
)
|
||||||
|
add_fieldsets = (
|
||||||
|
(
|
||||||
|
None,
|
||||||
|
{
|
||||||
|
"classes": ("wide",),
|
||||||
|
"fields": ("email", "password1", "password2"),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class OrganizationMembershipInline(admin.TabularInline):
|
||||||
|
model = OrganizationMembership
|
||||||
|
extra = 1
|
||||||
|
autocomplete_fields = ("user",)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(Organization)
|
||||||
|
class OrganizationAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name", "billing_entity", "origin")
|
||||||
|
list_filter = ("origin",)
|
||||||
|
search_fields = ("name",)
|
||||||
|
autocomplete_fields = ("billing_entity", "origin")
|
||||||
|
inlines = (OrganizationMembershipInline,)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(BillingEntity)
|
||||||
|
class BillingEntityAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name", "erp_reference")
|
||||||
|
search_fields = ("name", "erp_reference")
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(OrganizationOrigin)
|
||||||
|
class OrganizationOriginAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name",)
|
||||||
|
search_fields = ("name",)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(OrganizationMembership)
|
||||||
|
class OrganizationMembershipAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("user", "organization", "role", "date_joined")
|
||||||
|
list_filter = ("role", "date_joined", "organization")
|
||||||
|
search_fields = ("user__email", "organization__name")
|
||||||
|
autocomplete_fields = ("user", "organization")
|
||||||
|
date_hierarchy = "date_joined"
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceInline(admin.TabularInline):
|
||||||
|
model = Service
|
||||||
|
extra = 1
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(ServiceCategory)
|
||||||
|
class ServiceCategoryAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name", "parent")
|
||||||
|
list_filter = ("parent",)
|
||||||
|
search_fields = ("name", "description")
|
||||||
|
autocomplete_fields = ("parent",)
|
||||||
|
inlines = (ServiceInline,)
|
||||||
|
|
||||||
|
|
||||||
|
class PlanInline(admin.TabularInline):
|
||||||
|
model = Plan
|
||||||
|
extra = 1
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(Service)
|
||||||
|
class ServiceAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name", "category")
|
||||||
|
list_filter = ("category",)
|
||||||
|
search_fields = ("name", "description")
|
||||||
|
autocomplete_fields = ("category",)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(CloudProvider)
|
||||||
|
class CloudProviderAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name",)
|
||||||
|
search_fields = ("name", "description")
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(ControlPlane)
|
||||||
|
class ControlPlaneAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name", "cloud_provider", "k8s_api_endpoint")
|
||||||
|
list_filter = ("cloud_provider",)
|
||||||
|
search_fields = ("name", "description", "k8s_api_endpoint")
|
||||||
|
autocomplete_fields = ("cloud_provider",)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(Plan)
|
||||||
|
class PlanAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("name", "service_offering", "term")
|
||||||
|
list_filter = ("service_offering", "term")
|
||||||
|
search_fields = ("name", "description")
|
||||||
|
autocomplete_fields = ("service_offering",)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(ServiceOffering)
|
||||||
|
class ServiceOfferingAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ("id", "service", "provider")
|
||||||
|
list_filter = ("service", "provider", "control_plane")
|
||||||
|
search_fields = ("description",)
|
||||||
|
autocomplete_fields = ("service", "provider")
|
||||||
|
filter_horizontal = ("control_plane",)
|
Loading…
Add table
Add a link
Reference in a new issue