From 19129b8daa318f4ed4763f51a0f6c99a517e2e1d Mon Sep 17 00:00:00 2001 From: sax Date: Fri, 14 Oct 2022 20:40:59 +0200 Subject: [PATCH 1/2] updates --- .bumpversion.cfg | 2 +- CHANGES | 5 +++++ src/admin_extra_buttons/buttons.py | 8 ++++++-- src/admin_extra_buttons/mixins.py | 10 +++++++--- .../includes/change_form_buttons.html | 1 - 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 39a105b..7f7dcd4 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -2,7 +2,7 @@ current_version = 1.5.4 parse = (?P\d+)\.(?P\d+)\.(?P\d+) serialize = {major}.{minor}.{patch} -commit = True +commit = False tag = False allow_dirty = True diff --git a/CHANGES b/CHANGES index bf9a15b..7fe9cc6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +1.5.5 +----- +* minor refactoring of get_urls() + + 1.5.4 ----- * allow overwrite visible inside handler diff --git a/src/admin_extra_buttons/buttons.py b/src/admin_extra_buttons/buttons.py index 26bbd68..726b061 100644 --- a/src/admin_extra_buttons/buttons.py +++ b/src/admin_extra_buttons/buttons.py @@ -84,6 +84,10 @@ def enabled(self): def model_admin(self): return self.handler.model_admin + @property + def admin_site(self): + return self.handler.model_admin.admin_site + @property def visible(self): if not self.context: # pragma: no cover @@ -132,9 +136,9 @@ def get_url(self, context): detail = len(self.handler.sig.parameters) > self.default_change_form_arguments try: if self.change_form and self.original and detail: - url_ = reverse(f'admin:{self.handler.url_name}', args=[self.original.pk]) + url_ = reverse(f'{self.admin_site.name}:{self.handler.url_name}', args=[self.original.pk]) elif self.change_list: - url_ = reverse(f'admin:{self.handler.url_name}') + url_ = reverse(f'{self.admin_site.name}:{self.handler.url_name}') else: return None filters = get_preserved_filters(self.request) diff --git a/src/admin_extra_buttons/mixins.py b/src/admin_extra_buttons/mixins.py index 1d388ee..dce4452 100644 --- a/src/admin_extra_buttons/mixins.py +++ b/src/admin_extra_buttons/mixins.py @@ -122,12 +122,11 @@ def get_common_context(self, request, pk=None, **kwargs): context['original'] = self.object return context - def get_urls(self): + def get_extra_urls(self) -> list: self.extra_button_handlers = {} handlers = {} extra_urls = [] opts = self.model._meta - original = super().get_urls() for cls in inspect.getmro(self.__class__): for method_name, method in cls.__dict__.items(): if callable(method) and isinstance(method, BaseExtraHandler): @@ -145,7 +144,12 @@ def get_urls(self): name=handler.url_name)) if hasattr(handler, 'button_class'): self.extra_button_handlers[handler.func.__name__] = handler - return extra_urls + original + return extra_urls + + def get_urls(self): + urls = self.get_extra_urls() + urls.extend(super().get_urls()) + return urls def get_changeform_buttons(self, context): return [h for h in self.extra_button_handlers.values() if h.change_form in [True, None]] diff --git a/src/admin_extra_buttons/templates/admin_extra_buttons/includes/change_form_buttons.html b/src/admin_extra_buttons/templates/admin_extra_buttons/includes/change_form_buttons.html index 8619211..ec60a69 100644 --- a/src/admin_extra_buttons/templates/admin_extra_buttons/includes/change_form_buttons.html +++ b/src/admin_extra_buttons/templates/admin_extra_buttons/includes/change_form_buttons.html @@ -3,6 +3,5 @@ {% for button in buttons %} {% if button.can_render and button.change_form %} {{ button }} -{# {% include "admin_extra_buttons/includes/button.html" with button=button %}#} {% endif %} {% endfor %} From 95d65dddb7a7b34c20e28b99c8d06801ec9b78a1 Mon Sep 17 00:00:00 2001 From: sax Date: Fri, 14 Oct 2022 20:43:23 +0200 Subject: [PATCH 2/2] bump version --- .bumpversion.cfg | 2 +- setup.py | 1 + src/admin_extra_buttons/__init__.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 7f7dcd4..0483c16 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.5.4 +current_version = 1.5.5 parse = (?P\d+)\.(?P\d+)\.(?P\d+) serialize = {major}.{minor}.{patch} commit = False diff --git a/setup.py b/setup.py index 7dd4d26..29fa9b1 100755 --- a/setup.py +++ b/setup.py @@ -39,6 +39,7 @@ def read(*parts): 'wheel', ] dev_require = ['autopep8', + 'bump2version', 'check-manifest', 'django', 'pip-tools', diff --git a/src/admin_extra_buttons/__init__.py b/src/admin_extra_buttons/__init__.py index 230507c..ad8cdbb 100644 --- a/src/admin_extra_buttons/__init__.py +++ b/src/admin_extra_buttons/__init__.py @@ -1,3 +1,3 @@ NAME = 'django-admin-extra-buttons' -VERSION = __version__ = '1.5.4' +VERSION = __version__ = '1.5.5' __author__ = 'sax'