Make SnippetViewSet extend ModelViewSet

pull/10276/head
Sage Abdullah 2023-03-30 10:54:50 +01:00 zatwierdzone przez Matt Westcott
rodzic fbd3cca30f
commit 1d838fbce0
2 zmienionych plików z 17 dodań i 16 usunięć

Wyświetl plik

@ -103,6 +103,20 @@ class ModelViewSet(ViewSet):
exclude=exclude,
)
@property
def url_finder_class(self):
return type(
"_ModelAdminURLFinder",
(ModelAdminURLFinder,),
{
"permission_policy": self.permission_policy,
"edit_url_name": self.get_url_name("edit"),
},
)
def register_admin_url_finder(self):
register_admin_url_finder(self.model, self.url_finder_class)
def get_urlpatterns(self):
return super().get_urlpatterns() + [
path("", self.index_view, name="index"),
@ -113,12 +127,4 @@ class ModelViewSet(ViewSet):
def on_register(self):
super().on_register()
url_finder_class = type(
"_ModelAdminURLFinder",
(ModelAdminURLFinder,),
{
"permission_policy": self.permission_policy,
"edit_url_name": self.get_url_name("edit"),
},
)
register_admin_url_finder(self.model, url_finder_class)
self.register_admin_url_finder()

Wyświetl plik

@ -10,7 +10,6 @@ from django.utils.text import capfirst
from django.utils.translation import gettext as _
from django.utils.translation import gettext_lazy
from wagtail.admin.admin_url_finder import register_admin_url_finder
from wagtail.admin.checks import check_panels_in_model
from wagtail.admin.filters import DateRangePickerWidget, WagtailFilterSet
from wagtail.admin.panels import get_edit_handler
@ -33,7 +32,7 @@ from wagtail.admin.views.generic.preview import (
)
from wagtail.admin.views.reports.base import ReportView
from wagtail.admin.viewsets import viewsets
from wagtail.admin.viewsets.base import ViewSet
from wagtail.admin.viewsets.model import ModelViewSet
from wagtail.log_actions import registry as log_registry
from wagtail.models import (
DraftStateMixin,
@ -607,7 +606,7 @@ class WorkflowHistoryDetailView(
permission_required = "change"
class SnippetViewSet(ViewSet):
class SnippetViewSet(ModelViewSet):
"""
A viewset that instantiates the admin views for snippets.
"""
@ -1316,9 +1315,6 @@ class SnippetViewSet(ViewSet):
return urlpatterns + legacy_redirects
def register_admin_url_finder(self):
register_admin_url_finder(self.model, self.url_finder_class)
def register_model_check(self):
def snippets_model_check(app_configs, **kwargs):
return check_panels_in_model(self.model, "snippets")
@ -1340,6 +1336,5 @@ class SnippetViewSet(ViewSet):
def on_register(self):
super().on_register()
viewsets.register(self.chooser_viewset)
self.register_admin_url_finder()
self.register_model_check()
self.register_model_methods()