Deprecate PagePermissionPolicy.revisions_for_moderation

pull/10968/head
Sage Abdullah 2023-10-02 14:40:10 +01:00
rodzic e57a57dbaa
commit 40e9739297
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: EB1A33CC51CC0217
3 zmienionych plików z 26 dodań i 2 usunięć

Wyświetl plik

@ -104,7 +104,7 @@ class PagesForModerationPanel(Component):
context = super().get_context_data(parent_context)
revisions = (
PagePermissionPolicy()
.revisions_for_moderation(request.user)
._revisions_for_moderation(request.user)
.select_related("user")
.order_by("-created_at")
)

Wyświetl plik

@ -1,9 +1,12 @@
import warnings
from django.contrib.auth import get_permission_codename, get_user_model
from django.db.models import CharField, Q
from django.db.models.functions import Cast
from wagtail.models import GroupPagePermission, Page, Revision
from wagtail.permission_policies.base import OwnershipPermissionPolicy
from wagtail.utils.deprecation import RemovedInWagtail60Warning
class PagePermissionPolicy(OwnershipPermissionPolicy):
@ -215,7 +218,7 @@ class PagePermissionPolicy(OwnershipPermissionPolicy):
explorable_pages = explorable_pages.filter(path__startswith=fca_page.path)
return explorable_pages
def revisions_for_moderation(self, user):
def _revisions_for_moderation(self, user):
# Deal with the trivial cases first...
if not user.is_active:
return Revision.objects.none()
@ -242,3 +245,10 @@ class PagePermissionPolicy(OwnershipPermissionPolicy):
Cast("pk", output_field=CharField()), flat=True
)
)
def revisions_for_moderation(self, user):
warnings.warn(
"The PagePermissionPolicy.revisions_for_moderation() method is deprecated.",
RemovedInWagtail60Warning,
)
return self._revisions_for_moderation(user)

Wyświetl plik

@ -5,6 +5,7 @@ from wagtail.models import GroupPagePermission, Page, get_default_page_content_t
from wagtail.permission_policies.pages import PagePermissionPolicy
from wagtail.test.utils import WagtailTestUtils
from wagtail.tests.test_permission_policies import PermissionPolicyTestUtils
from wagtail.utils.deprecation import RemovedInWagtail60Warning
class PermissionPolicyTestCase(PermissionPolicyTestUtils, WagtailTestUtils, TestCase):
@ -519,3 +520,16 @@ class TestPagePermissionPolicy(PermissionPolicyTestCase):
),
[self.superuser],
)
def test_get_revisions_for_moderation(self):
# RemovedInWagtail60Warning
# Remove this test when the deprecation period for the legacy
# moderation system ends.
with self.assertWarnsMessage(
RemovedInWagtail60Warning,
"The PagePermissionPolicy.revisions_for_moderation() method is deprecated.",
):
revisions = self.policy.revisions_for_moderation(self.superuser)
revision = self.reports_page.save_revision(submitted_for_moderation=True)
self.assertCountEqual(revisions, [revision])