11from __future__ import annotations
22
3+ from collections .abc import Iterable
4+
35from cms .admin .utils import GrouperModelAdmin
46from cms .utils .permissions import get_model_permission_codename
57from cms .utils .urlutils import admin_reverse
1618from django .utils .translation import gettext_lazy as _
1719from parler .admin import TranslatableAdmin
1820
19- from .cms_config import AliasCMSConfig
2021from .constants import (
2122 CHANGE_ALIAS_URL_NAME ,
2223 DELETE_ALIAS_URL_NAME ,
3738 "AliasContentAdmin" ,
3839]
3940
40- alias_admin_list_display = ["content__name" , "category" , "static" , "used" , "admin_list_actions" ]
41- djangocms_versioning_enabled = AliasCMSConfig .djangocms_versioning_enabled
42-
43- if djangocms_versioning_enabled :
44- alias_admin_list_display .insert (- 1 , "get_author" )
45- alias_admin_list_display .insert (- 1 , "get_modified_date" )
46-
4741
4842@admin .register (Category )
4943class CategoryAdmin (TranslatableAdmin ):
@@ -64,7 +58,7 @@ def save_model(self, request, obj, form, change):
6458
6559@admin .register (Alias )
6660class AliasAdmin (GrouperModelAdmin ):
67- list_display = alias_admin_list_display
61+ list_display = [ "content__name" , "category" , "static" , "used" , "admin_list_actions" ]
6862 list_display_links = None
6963 list_filter = (
7064 SiteFilter ,
@@ -82,11 +76,20 @@ def get_actions_list(self) -> list:
8276 """Add alias usage list actions"""
8377 return super ().get_actions_list () + [self ._get_alias_usage_link , self ._get_alias_delete_link ]
8478
85- def get_queryset (self , request ) :
79+ def get_queryset (self , request : HttpRequest ) -> models . QuerySet :
8680 qs = super ().get_queryset (request )
8781 # Annotate each Alias with a boolean indicating if related cmsplugins exist
8882 return qs .annotate (cmsplugins_count = models .Count ("cms_plugins" ))
8983
84+ def get_list_display (self , request : HttpRequest ) -> Iterable [str ]:
85+ list_display = super ().get_list_display (request )
86+ list_display = list (list_display )
87+ if hasattr (self , "get_author" ):
88+ list_display .insert (- 1 , "get_author" )
89+ if hasattr (self , "get_modified_date" ):
90+ list_display .insert (- 1 , "get_modified_date" )
91+ return list_display
92+
9093 @admin .display (description = _ ("Used" ), boolean = True , ordering = "cmsplugins_count" )
9194 def used (self , obj : Alias ) -> bool | None :
9295 if obj .static_code and obj .cmsplugins_count == 0 :
0 commit comments