From 099e36868844f427bf08daed88af4c08d3530d46 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Tue, 28 Oct 2025 08:58:09 +0100 Subject: [PATCH 1/3] fix: Admin complained about missing methods get_author and get_modified_date --- djangocms_alias/admin.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/djangocms_alias/admin.py b/djangocms_alias/admin.py index 31e82aac..15b215d3 100644 --- a/djangocms_alias/admin.py +++ b/djangocms_alias/admin.py @@ -16,7 +16,6 @@ from django.utils.translation import gettext_lazy as _ from parler.admin import TranslatableAdmin -from .cms_config import AliasCMSConfig from .constants import ( CHANGE_ALIAS_URL_NAME, DELETE_ALIAS_URL_NAME, @@ -37,13 +36,6 @@ "AliasContentAdmin", ] -alias_admin_list_display = ["content__name", "category", "static", "used", "admin_list_actions"] -djangocms_versioning_enabled = AliasCMSConfig.djangocms_versioning_enabled - -if djangocms_versioning_enabled: - alias_admin_list_display.insert(-1, "get_author") - alias_admin_list_display.insert(-1, "get_modified_date") - @admin.register(Category) class CategoryAdmin(TranslatableAdmin): @@ -64,7 +56,7 @@ def save_model(self, request, obj, form, change): @admin.register(Alias) class AliasAdmin(GrouperModelAdmin): - list_display = alias_admin_list_display + list_display = ["content__name", "category", "static", "used", "admin_list_actions"] list_display_links = None list_filter = ( SiteFilter, @@ -87,6 +79,14 @@ def get_queryset(self, request): # Annotate each Alias with a boolean indicating if related cmsplugins exist return qs.annotate(cmsplugins_count=models.Count("cms_plugins")) + def get_list_display(self, request): + list_display = super().get_list_display(request) + if hasattr(self, "get_author"): + list_display = list(list_display) + list_display.insert(-1, "get_author") + list_display.insert(-1, "get_modified_date") + return list_display + @admin.display(description=_("Used"), boolean=True, ordering="cmsplugins_count") def used(self, obj: Alias) -> bool | None: if obj.static_code and obj.cmsplugins_count == 0: From b42d781c8b1d99227a30bc4da9e1df317976eb40 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Tue, 28 Oct 2025 09:03:46 +0100 Subject: [PATCH 2/3] chore: Add types --- djangocms_alias/admin.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/djangocms_alias/admin.py b/djangocms_alias/admin.py index 15b215d3..e50071c2 100644 --- a/djangocms_alias/admin.py +++ b/djangocms_alias/admin.py @@ -1,5 +1,7 @@ from __future__ import annotations +from collections.abc import Iterable + from cms.admin.utils import GrouperModelAdmin from cms.utils.permissions import get_model_permission_codename from cms.utils.urlutils import admin_reverse @@ -74,12 +76,12 @@ def get_actions_list(self) -> list: """Add alias usage list actions""" return super().get_actions_list() + [self._get_alias_usage_link, self._get_alias_delete_link] - def get_queryset(self, request): + def get_queryset(self, request: HttpRequest) -> models.QuerySet: qs = super().get_queryset(request) # Annotate each Alias with a boolean indicating if related cmsplugins exist return qs.annotate(cmsplugins_count=models.Count("cms_plugins")) - def get_list_display(self, request): + def get_list_display(self, request: HttpRequest) -> Iterable[str]: list_display = super().get_list_display(request) if hasattr(self, "get_author"): list_display = list(list_display) From e466aa9897889dc6ceed0748418b8dae39f53e88 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Tue, 28 Oct 2025 09:05:18 +0100 Subject: [PATCH 3/3] fix: Do not imply correlation of get_author and get_modified_state --- djangocms_alias/admin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/djangocms_alias/admin.py b/djangocms_alias/admin.py index e50071c2..9924a8e9 100644 --- a/djangocms_alias/admin.py +++ b/djangocms_alias/admin.py @@ -83,9 +83,10 @@ def get_queryset(self, request: HttpRequest) -> models.QuerySet: def get_list_display(self, request: HttpRequest) -> Iterable[str]: list_display = super().get_list_display(request) + list_display = list(list_display) if hasattr(self, "get_author"): - list_display = list(list_display) list_display.insert(-1, "get_author") + if hasattr(self, "get_modified_date"): list_display.insert(-1, "get_modified_date") return list_display