diff --git a/djangocms_versioning/admin.py b/djangocms_versioning/admin.py index e008b202..b53d2088 100644 --- a/djangocms_versioning/admin.py +++ b/djangocms_versioning/admin.py @@ -1101,9 +1101,14 @@ def publish_view(self, request, object_id): self.message_user(request, _("Version published")) # Redirect to published? - if conf.ON_PUBLISH_REDIRECT == "published": - if hasattr(version.content, "get_absolute_url"): - requested_redirect = requested_redirect or version.content.get_absolute_url() + if not requested_redirect and conf.ON_PUBLISH_REDIRECT == "published": + if hasattr(version.content, "get_full_url"): + full_url = version.content.get_full_url() + if full_url: + # Can't resolve full_url, redirect directly to it + return redirect(full_url) + elif hasattr(version.content, "get_absolute_url"): + requested_redirect = version.content.get_absolute_url() return self._internal_redirect(requested_redirect, redirect_url) diff --git a/djangocms_versioning/cms_toolbars.py b/djangocms_versioning/cms_toolbars.py index f4a29df0..be430d66 100644 --- a/djangocms_versioning/cms_toolbars.py +++ b/djangocms_versioning/cms_toolbars.py @@ -258,7 +258,9 @@ def _add_view_published_button(self): if not published_version: return - url = published_version.get_absolute_url() if hasattr(published_version, "get_absolute_url") else None + url = published_version.get_full_url() if hasattr(published_version, "get_full_url") else None + if not url and hasattr(published_version, "get_absolute_url"): + url = published_version.get_absolute_url() if url and (self.toolbar.edit_mode_active or self.toolbar.preview_mode_active): item = ButtonList(side=self.toolbar.RIGHT) item.add_button( diff --git a/djangocms_versioning/templates/admin/djangocms_versioning/page/change_form.html b/djangocms_versioning/templates/admin/djangocms_versioning/page/change_form.html index 919dbec3..f4929c8f 100644 --- a/djangocms_versioning/templates/admin/djangocms_versioning/page/change_form.html +++ b/djangocms_versioning/templates/admin/djangocms_versioning/page/change_form.html @@ -34,7 +34,7 @@ -
+ {% csrf_token %} {% block form_top %}{% endblock %}