Refactoring adminsite.py to allow all models and be configurable via settings.py
This commit is contained in:
parent
78221f8ac3
commit
5bfe5602b8
2 changed files with 26 additions and 16 deletions
|
|
@ -1033,6 +1033,24 @@ MIDDLEWARE = [
|
||||||
"evennia.web.utils.middleware.SharedLoginMiddleware",
|
"evennia.web.utils.middleware.SharedLoginMiddleware",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# A list of Django apps (see INSTALLED_APPS) that will be listed first (if present)
|
||||||
|
# in the Django web Admin page.
|
||||||
|
DJANGO_ADMIN_APP_ORDER = [
|
||||||
|
"accounts",
|
||||||
|
"objects",
|
||||||
|
"scripts",
|
||||||
|
"comms",
|
||||||
|
"help",
|
||||||
|
"typeclasses",
|
||||||
|
"server",
|
||||||
|
"sites",
|
||||||
|
"flatpages",
|
||||||
|
"auth",
|
||||||
|
]
|
||||||
|
|
||||||
|
# The following apps will be excluded from the Django web Admin page.
|
||||||
|
DJANGO_ADMIN_APP_EXCLUDE = list()
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Evennia components
|
# Evennia components
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ of that folder for Django to find them).
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin import apps
|
from django.contrib.admin import apps
|
||||||
|
|
||||||
|
|
@ -30,20 +31,11 @@ class EvenniaAdminSite(admin.AdminSite):
|
||||||
|
|
||||||
site_header = "Evennia web admin"
|
site_header = "Evennia web admin"
|
||||||
|
|
||||||
app_order = [
|
def get_app_list(self, request, app_label=None):
|
||||||
"accounts",
|
app_list = super().get_app_list(request, app_label=app_label)
|
||||||
"objects",
|
|
||||||
"scripts",
|
|
||||||
"comms",
|
|
||||||
"help",
|
|
||||||
"typeclasses",
|
|
||||||
"server",
|
|
||||||
"sites",
|
|
||||||
"flatpages",
|
|
||||||
"auth",
|
|
||||||
]
|
|
||||||
|
|
||||||
def get_app_list(self, request):
|
|
||||||
app_list = super().get_app_list(request)
|
|
||||||
app_mapping = {app["app_label"]: app for app in app_list}
|
app_mapping = {app["app_label"]: app for app in app_list}
|
||||||
return [app_mapping.get(app_label) for app_label in self.app_order]
|
out = [app_mapping.pop(app_label) for app_label in settings.DJANGO_ADMIN_APP_ORDER if app_label in app_mapping]
|
||||||
|
for app in settings.DJANGO_ADMIN_APP_EXCLUDE:
|
||||||
|
app_mapping.pop(app, None)
|
||||||
|
out += app_mapping.values()
|
||||||
|
return out
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue