You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
from functools import update_wrapper
|
|
from typing import List
|
|
|
|
from django.contrib.admin import AdminSite
|
|
from django.template.response import TemplateResponse
|
|
from django.urls import path
|
|
from django.utils.safestring import SafeString
|
|
|
|
|
|
class AlmaLinuxAdminSite(AdminSite):
|
|
site_title = 'AlmaLinux OS Admin'
|
|
site_header = SafeString('<img src="/static/images/logo.svg" alt="Logo">')
|
|
|
|
def get_urls(self) -> List:
|
|
urls: List = []
|
|
urls += super().get_urls()
|
|
urls_insert_pos = len(urls) - 1
|
|
|
|
from www.admin import www_admin_urls
|
|
|
|
for www_admin_url in www_admin_urls:
|
|
def inner(request): # type: ignore
|
|
context = {
|
|
**self.each_context(request),
|
|
'subtitle': None,
|
|
'is_nav_sidebar_enabled': False,
|
|
**(www_admin_url[3] or {})
|
|
}
|
|
request.current_app = self.name
|
|
|
|
return TemplateResponse(request, www_admin_url[1], context)
|
|
|
|
urls.insert(
|
|
urls_insert_pos,
|
|
path(www_admin_url[0], self.admin_view(inner), name=www_admin_url[2])
|
|
)
|
|
|
|
return urls
|
|
|