Select Git revision
-
Tomáš Valenta authoredTomáš Valenta authored
admin.py 1.21 KiB
import copy
from django.conf import settings
from django.contrib import admin
from django_admin_index.models import AppGroup, AppGroupQuerySet
def get_app_list(self, request):
app_dict = self._build_app_dict(request)
for app_name, object_list in app_dict.items():
if app_name in settings.ADMIN_ORDERING:
app = app_dict[app_name]
app["models"].sort(
key=lambda model: settings.ADMIN_ORDERING[app_name].index(
model["object_name"]
)
)
app_dict[app_name]
yield app
else:
yield app_dict[app_name]
admin.AdminSite.get_app_list = get_app_list
original_as_list_func = copy.deepcopy(AppGroupQuerySet.as_list)
def as_list(self, request, include_remaining=True):
result = original_as_list_func(self, request, include_remaining=include_remaining)
for item in result:
if item["app_label"] not in settings.ADMIN_ORDERING:
continue
item["models"].sort(
key=lambda model: (
settings.ADMIN_ORDERING[item["app_label"]].index(model["object_name"])
)
)
return result
AppGroupQuerySet.as_list = as_list