Remove get_admin_url_namespace() and get_admin_base_path() from snippet models

pull/10276/head
Sage Abdullah 2023-03-30 11:32:04 +01:00 zatwierdzone przez Matt Westcott
rodzic 1d838fbce0
commit ff363dee87
7 zmienionych plików z 18 dodań i 35 usunięć

Wyświetl plik

@ -416,3 +416,7 @@ The following icons are unused in Wagtail itself and will be removed in a future
| `undo` | `rotate` |
| `uni52` | `folder-inverse` (identical) |
| `wagtail-inverse` | `wagtail-icon` |
### Snippets `get_admin_url_namespace()` and `get_admin_base_path()` moved to `SnippetViewSet`
The undocumented `get_admin_url_namespace()` and `get_admin_base_path()` methods that were set on snippet models at runtime have been moved to the {class}`~wagtail.snippets.views.snippets.SnippetViewSet` class. If you use these methods, you could access them via {meth}`SnippetModel.snippet_viewset.get_admin_url_namespace() <wagtail.snippets.views.snippets.SnippetViewSet.get_admin_url_namespace>` and {meth}`SnippetModel.snippet_viewset.get_admin_base_path() <wagtail.snippets.views.snippets.SnippetViewSet.get_admin_base_path>`, respectively.

Wyświetl plik

@ -202,7 +202,7 @@ def admin_url_name(obj, action):
"""
if isinstance(obj, Page):
return f"wagtailadmin_pages:{action}"
return obj.get_admin_url_namespace() + f":{action}"
return obj.snippet_viewset.get_url_name(action)
@register.simple_tag

Wyświetl plik

@ -1136,7 +1136,7 @@ class BaseSnippetWorkflowTests(BasePageWorkflowTests):
def get_url(self, view, args=None):
return reverse(
f"{self.object.get_admin_url_namespace()}:{view}",
self.model.snippet_viewset.get_url_name(view),
args=(quote(self.object.pk),) if args is None else args,
)

Wyświetl plik

@ -184,14 +184,17 @@ class WorkflowObjectsToModeratePanel(Component):
actions = state.task.specific.get_actions(obj, request.user)
workflow_tasks = state.workflow_state.all_tasks_with_status()
url_name_prefix = "wagtailadmin_pages"
if not isinstance(obj, Page):
url_name_prefix = obj.get_admin_url_namespace()
workflow_action_url_name = "wagtailadmin_pages:workflow_action"
workflow_preview_url_name = "wagtailadmin_pages:workflow_preview"
workflow_action_url_name = f"{url_name_prefix}:workflow_action"
workflow_preview_url_name = None
if getattr(obj, "is_previewable", False):
workflow_preview_url_name = f"{url_name_prefix}:workflow_preview"
# Snippets can also have workflows
if not isinstance(obj, Page):
viewset = obj.snippet_viewset
workflow_action_url_name = viewset.get_url_name("workflow_action")
workflow_preview_url_name = viewset.get_url_name("workflow_preview")
if not getattr(obj, "is_previewable", False):
workflow_preview_url_name = None
context["states"].append(
{

Wyświetl plik

@ -147,7 +147,7 @@ class WorkflowMenuItem(ActionMenuItem):
def get_url(self, parent_context):
instance = parent_context["instance"]
url_name = instance.get_admin_url_namespace() + ":collect_workflow_action_data"
url_name = instance.snippet_viewset.get_url_name("collect_workflow_action_data")
return reverse(
url_name,
args=(

Wyświetl plik

@ -201,11 +201,6 @@ class TestAdminURLs(BaseSnippetViewSetTests):
viewset.get_admin_url_namespace(),
"wagtailsnippets_tests_advert",
)
# Accessed via the model
self.assertEqual(
snippet.get_admin_url_namespace(),
"wagtailsnippets_tests_advert",
)
# Get specific URL name
self.assertEqual(
viewset.get_url_name("edit"),
@ -231,8 +226,6 @@ class TestAdminURLs(BaseSnippetViewSetTests):
# Accessed via the viewset
self.assertEqual(viewset.get_admin_base_path(), "snippets/tests/advert")
# Accessed via the model
self.assertEqual(snippet.get_admin_base_path(), "snippets/tests/advert")
# Get specific URL
self.assertEqual(reverse(viewset.get_url_name("edit"), args=[pk]), expected_url)
# Ensure AdminURLFinder returns the correct URL
@ -254,8 +247,6 @@ class TestAdminURLs(BaseSnippetViewSetTests):
viewset = snippet.snippet_viewset
# Accessed via the viewset
self.assertEqual(viewset.get_admin_url_namespace(), "some_namespace")
# Accessed via the model
self.assertEqual(snippet.get_admin_url_namespace(), "some_namespace")
# Get specific URL name
self.assertEqual(viewset.get_url_name("edit"), "some_namespace:edit")
# Chooser namespace
@ -277,8 +268,6 @@ class TestAdminURLs(BaseSnippetViewSetTests):
expected_choose_url = "/admin/choose/wisely/"
# Accessed via the viewset
self.assertEqual(viewset.get_admin_base_path(), "deep/within/the/admin")
# Accessed via the model
self.assertEqual(snippet.get_admin_base_path(), "deep/within/the/admin")
# Get specific URL
self.assertEqual(reverse(viewset.get_url_name("edit"), args=[pk]), expected_url)
# Ensure AdminURLFinder returns the correct URL

Wyświetl plik

@ -98,7 +98,7 @@ class ModelIndexView(generic.IndexView):
return super().dispatch(request, *args, **kwargs)
def get_list_url(self, type):
return reverse(type["model"].get_admin_url_namespace() + ":list")
return reverse(type["model"].snippet_viewset.get_url_name("list"))
def get_queryset(self):
return None
@ -1321,20 +1321,7 @@ class SnippetViewSet(ModelViewSet):
checks.register(snippets_model_check, "panels")
def register_model_methods(self):
@classmethod
def get_admin_url_namespace(cls):
return self.get_admin_url_namespace()
@classmethod
def get_admin_base_path(cls):
return self.get_admin_base_path()
self.model.get_admin_url_namespace = get_admin_url_namespace
self.model.get_admin_base_path = get_admin_base_path
def on_register(self):
super().on_register()
viewsets.register(self.chooser_viewset)
self.register_model_check()
self.register_model_methods()