93 lines
2.6 KiB
Python
93 lines
2.6 KiB
Python
from django.contrib import admin
|
|
from django.http import HttpResponseRedirect
|
|
from django.urls import reverse
|
|
|
|
from .models import SiteBranding, SiteContact
|
|
|
|
|
|
@admin.register(SiteBranding)
|
|
class SiteBrandingAdmin(admin.ModelAdmin):
|
|
fieldsets = (
|
|
("Icon", {"fields": ("icon", "icon_alt")}),
|
|
(
|
|
"Sizes",
|
|
{
|
|
"fields": ("navbar_icon_size", "footer_icon_size"),
|
|
"description": "Square dimensions in pixels for each placement.",
|
|
},
|
|
),
|
|
(
|
|
"Appearance",
|
|
{
|
|
"fields": (
|
|
"object_fit",
|
|
"show_border",
|
|
"border_width",
|
|
"border_color",
|
|
),
|
|
},
|
|
),
|
|
)
|
|
|
|
def has_add_permission(self, request):
|
|
return not SiteBranding.objects.exists()
|
|
|
|
def has_delete_permission(self, request, obj=None):
|
|
return False
|
|
|
|
def changelist_view(self, request, extra_context=None):
|
|
branding = SiteBranding.objects.first()
|
|
if branding:
|
|
return HttpResponseRedirect(
|
|
reverse("admin:core_sitebranding_change", args=[branding.pk])
|
|
)
|
|
return super().changelist_view(request, extra_context)
|
|
|
|
|
|
@admin.register(SiteContact)
|
|
class SiteContactAdmin(admin.ModelAdmin):
|
|
fieldsets = (
|
|
(
|
|
"Email",
|
|
{
|
|
"fields": (
|
|
"support_email",
|
|
"email_card_title",
|
|
"email_card_description",
|
|
),
|
|
},
|
|
),
|
|
(
|
|
"Discord",
|
|
{
|
|
"fields": (
|
|
"discord_url",
|
|
"discord_label",
|
|
"discord_card_title",
|
|
"discord_card_description",
|
|
),
|
|
},
|
|
),
|
|
(
|
|
"Office address",
|
|
{
|
|
"fields": ("office_address", "office_card_title"),
|
|
"description": "Enter one address line per row.",
|
|
},
|
|
),
|
|
)
|
|
|
|
def has_add_permission(self, request):
|
|
return not SiteContact.objects.exists()
|
|
|
|
def has_delete_permission(self, request, obj=None):
|
|
return False
|
|
|
|
def changelist_view(self, request, extra_context=None):
|
|
contact = SiteContact.objects.first()
|
|
if contact:
|
|
return HttpResponseRedirect(
|
|
reverse("admin:core_sitecontact_change", args=[contact.pk])
|
|
)
|
|
return super().changelist_view(request, extra_context)
|