From e1c6ae2d2be7b3f9cbbb33990bb5eadbf08d88ba Mon Sep 17 00:00:00 2001 From: Sage Abdullah Date: Tue, 13 Dec 2022 16:25:31 +0000 Subject: [PATCH] Rename `Task.page_locked_for_user` to `Task.locked_for_user` --- docs/reference/pages/model_reference.md | 2 +- wagtail/locks.py | 4 ++-- wagtail/models/__init__.py | 25 +++++++++++++++++++++---- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/docs/reference/pages/model_reference.md b/docs/reference/pages/model_reference.md index b2bff7f084..dd640fe4d3 100644 --- a/docs/reference/pages/model_reference.md +++ b/docs/reference/pages/model_reference.md @@ -1020,7 +1020,7 @@ Tasks represent stages in a workflow which must be approved for the workflow to .. automethod:: user_can_unlock - .. automethod:: page_locked_for_user + .. automethod:: locked_for_user .. automethod:: get_actions diff --git a/wagtail/locks.py b/wagtail/locks.py index bda9d978c9..84a23b4f54 100644 --- a/wagtail/locks.py +++ b/wagtail/locks.py @@ -135,7 +135,7 @@ class BasicLock(BaseLock): class WorkflowLock(BaseLock): """ - A lock that requires the user to pass the Task.page_locked_for_user test on the given workflow task. + A lock that requires the user to pass the Task.locked_for_user test on the given workflow task. Can be applied to pages only. """ @@ -145,7 +145,7 @@ class WorkflowLock(BaseLock): self.task = task def for_user(self, user): - return self.task.page_locked_for_user(self.object, user) + return self.task.locked_for_user(self.object, user) def get_message(self, user): if self.for_user(user): diff --git a/wagtail/models/__init__.py b/wagtail/models/__init__.py index 0624defa25..420cda7293 100644 --- a/wagtail/models/__init__.py +++ b/wagtail/models/__init__.py @@ -90,7 +90,10 @@ from wagtail.signals import ( workflow_submitted, ) from wagtail.url_routing import RouteResult -from wagtail.utils.deprecation import RemovedInWagtail50Warning +from wagtail.utils.deprecation import ( + RemovedInWagtail50Warning, + RemovedInWagtail60Warning, +) from .audit_log import ( # noqa BaseLogEntry, @@ -3609,8 +3612,22 @@ class Task(models.Model): Note that returning False does not remove permissions from users who would otherwise have them.""" return False - def page_locked_for_user(self, obj, user): - """Returns True if the object should be locked to a given user's edits. This can be used to prevent editing by non-reviewers.""" + def locked_for_user(self, obj, user): + """ + Returns True if the object should be locked to a given user's edits. + This can be used to prevent editing by non-reviewers. + + .. versionchanged:: 4.2 + This method has been renamed from ``page_locked_for_user`` to ``locked_for_user``. + """ + if hasattr(self, "page_locked_for_user"): + warnings.warn( + "Tasks should use .locked_for_user() instead of " + ".page_locked_for_user().", + category=RemovedInWagtail60Warning, + stacklevel=2, + ) + return self.page_locked_for_user(obj, user) return False def user_can_lock(self, obj, user): @@ -3791,7 +3808,7 @@ class GroupApprovalTask(Task): self.groups.filter(id__in=user.groups.all()).exists() or user.is_superuser ) - def page_locked_for_user(self, obj, user): + def locked_for_user(self, obj, user): return not ( self.groups.filter(id__in=user.groups.all()).exists() or user.is_superuser )