wtf, je to podle dokumentace… a bugreportu
This commit is contained in:
parent
381c5ca3de
commit
bee0083dac
3 changed files with 36 additions and 27 deletions
|
@ -5,7 +5,6 @@ jako první) adminu k Semináři.
|
||||||
"""
|
"""
|
||||||
import locale
|
import locale
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin import AdminSite
|
|
||||||
from django.contrib.flatpages.models import FlatPage
|
from django.contrib.flatpages.models import FlatPage
|
||||||
|
|
||||||
# Note: we are renaming the original Admin and Form as we import them!
|
# Note: we are renaming the original Admin and Form as we import them!
|
||||||
|
@ -33,31 +32,28 @@ admin.site.register(FlatPage, FlatPageAdmin)
|
||||||
|
|
||||||
locale.setlocale(locale.LC_COLLATE, 'cs_CZ.UTF-8')
|
locale.setlocale(locale.LC_COLLATE, 'cs_CZ.UTF-8')
|
||||||
|
|
||||||
# https://books.agiliq.com/projects/django-admin-cookbook/en/latest/set_ordering.html
|
# Ref: https://docs.djangoproject.com/en/4.2/ref/contrib/admin/#overriding-default-admin-site
|
||||||
# FIXME zpraseno pomocí toho, že Python umí bez problému přepisovat funkce
|
# Používá se z mamweb/apps.py
|
||||||
def get_app_list(self, request, app_label=None):
|
class MamwebAdminSite(admin.AdminSite):
|
||||||
"""
|
# Přeuspořádání modelů
|
||||||
Return a sorted list of all the installed apps that have been
|
# Ref: https://docs.djangoproject.com/en/4.2/ref/contrib/admin/#django.contrib.admin.AdminSite.get_app_list
|
||||||
registered in this site.
|
def get_app_list(self, request, app_label=None):
|
||||||
"""
|
orig_app_list = super().get_app_list(request, app_label)
|
||||||
|
apps_by_label = {app['label']: app for app in orig_app_list}
|
||||||
|
|
||||||
app_dict = self._build_app_dict(request, label=app_label)
|
aplikace_nahore = [
|
||||||
aplikace_nahore = [
|
'seminar',
|
||||||
'seminar',
|
'personalni',
|
||||||
'personalni',
|
'novinky',
|
||||||
'novinky',
|
'korektury',
|
||||||
'korektury',
|
'various',
|
||||||
'various',
|
'prednasky',
|
||||||
'prednasky',
|
'soustredeni',
|
||||||
'soustredeni',
|
]
|
||||||
]
|
app_list = [apps_by_label[label] for label in aplikace_nahore] + [apps_by_label[label] for label in apps_by_label if label not in aplikace_nahore]
|
||||||
app_list = [app_dict[label] for label in aplikace_nahore] + [app_dict[label] for label in app_dict if label not in aplikace_nahore]
|
|
||||||
|
|
||||||
|
# TreeNody na konec
|
||||||
|
for app in app_list:
|
||||||
|
app['models'].sort(key=lambda x: locale.strxfrm('žž' + x['name'].lower()) if (x['name'].endswith("(Node)")) else locale.strxfrm(x['name'].lower()))
|
||||||
|
|
||||||
# Sort the models alphabetically within each app.
|
return app_list
|
||||||
for app in app_list:
|
|
||||||
app['models'].sort(key=lambda x: locale.strxfrm('žž' + x['name'].lower()) if (x['name'].endswith("(Node)")) else locale.strxfrm(x['name'].lower()))
|
|
||||||
|
|
||||||
return app_list
|
|
||||||
|
|
||||||
AdminSite.get_app_list = get_app_list
|
|
||||||
|
|
12
mamweb/apps.py
Normal file
12
mamweb/apps.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
from django.contrib.admin import apps
|
||||||
|
# Nemůžeme importovat rovnou AdminConfig, jinak se autodetekuje˙:-/
|
||||||
|
# https://code.djangoproject.com/ticket/32642
|
||||||
|
|
||||||
|
# Ref: https://docs.djangoproject.com/en/4.2/ref/contrib/admin/#overriding-default-admin-site
|
||||||
|
# Pozn: nad tím je „Customizing the AdminSite class“, ale ta nepřepisuje
|
||||||
|
# default, takže bychom museli přepsat všechny registrace do admina. Proto
|
||||||
|
# radši overridujeme i AdminConfig
|
||||||
|
class MamwebAdminConfig(apps.AdminConfig):
|
||||||
|
default_site = 'mamweb.admin.MamwebAdminSite'
|
||||||
|
|
||||||
|
|
|
@ -108,6 +108,7 @@ INSTALLED_APPS = (
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'django.contrib.auth',
|
'django.contrib.auth',
|
||||||
|
|
||||||
|
'mamweb.apps',
|
||||||
# Utilities
|
# Utilities
|
||||||
'reversion',
|
'reversion',
|
||||||
'django_countries',
|
'django_countries',
|
||||||
|
@ -159,7 +160,7 @@ INSTALLED_APPS = (
|
||||||
# 'admin_tools.theming',
|
# 'admin_tools.theming',
|
||||||
# 'admin_tools.menu',
|
# 'admin_tools.menu',
|
||||||
# 'admin_tools.dashboard',
|
# 'admin_tools.dashboard',
|
||||||
'django.contrib.admin',
|
# 'django.contrib.admin',
|
||||||
|
|
||||||
# Nechat na konci (INSTALLED_APPS je uspořádané):
|
# Nechat na konci (INSTALLED_APPS je uspořádané):
|
||||||
'django_cleanup.apps.CleanupConfig', # Uklízí media/
|
'django_cleanup.apps.CleanupConfig', # Uklízí media/
|
||||||
|
|
Loading…
Reference in a new issue