Skip to content

Commit 772e8ac

Browse files
authored
fix: Admin complained about missing methods get_author and get_modified_date (#307)
* fix: Admin complained about missing methods get_author and get_modified_date * chore: Add types * fix: Do not imply correlation of get_author and get_modified_state
1 parent 6d57a2e commit 772e8ac

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

djangocms_alias/admin.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from __future__ import annotations
22

3+
from collections.abc import Iterable
4+
35
from cms.admin.utils import GrouperModelAdmin
46
from cms.utils.permissions import get_model_permission_codename
57
from cms.utils.urlutils import admin_reverse
@@ -16,7 +18,6 @@
1618
from django.utils.translation import gettext_lazy as _
1719
from parler.admin import TranslatableAdmin
1820

19-
from .cms_config import AliasCMSConfig
2021
from .constants import (
2122
CHANGE_ALIAS_URL_NAME,
2223
DELETE_ALIAS_URL_NAME,
@@ -37,13 +38,6 @@
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)
4943
class CategoryAdmin(TranslatableAdmin):
@@ -64,7 +58,7 @@ def save_model(self, request, obj, form, change):
6458

6559
@admin.register(Alias)
6660
class 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

Comments
 (0)