From b460fff91524597bf6bd61d1a3487b2ed5ece6c6 Mon Sep 17 00:00:00 2001 From: Maximilian Moser <maximilian.moser@tuwien.ac.at> Date: Mon, 17 Mar 2025 11:14:22 +0100 Subject: [PATCH] Send notification about started review to other reviewers * so that reviewers know that somebody has started looking at the record and can remove it from their (mental) TODO list --- invenio_config_tuw/config.py | 4 ++++ invenio_config_tuw/curations/__init__.py | 2 ++ invenio_config_tuw/curations/requests.py | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/invenio_config_tuw/config.py b/invenio_config_tuw/config.py index b913ac4..6c092cc 100644 --- a/invenio_config_tuw/config.py +++ b/invenio_config_tuw/config.py @@ -24,6 +24,9 @@ from invenio_i18n import gettext as _ from invenio_oauthclient.views.client import auto_redirect_login from .auth import TUWSSOSettingsHelper +from .curations import ( + TUWCurationRequestReviewNotificationBuilder as TUWReviewNotifBuilder, +) from .curations import ( TUWCurationRequestUploaderResubmitNotificationBuilder as TUWUploaderResubmitNotifBuilder, ) @@ -330,6 +333,7 @@ MAX_CONTENT_LENGTH = 100 * (1024**2) NOTIFICATIONS_BUILDERS = { **NOTIFICATIONS_BUILDERS, **CURATIONS_NOTIFICATIONS_BUILDERS, + TUWReviewNotifBuilder.type: TUWReviewNotifBuilder, TUWUploaderResubmitNotifBuilder.type: TUWUploaderResubmitNotifBuilder, UserNotificationBuilder.type: UserNotificationBuilder, GroupNotificationBuilder.type: GroupNotificationBuilder, diff --git a/invenio_config_tuw/curations/__init__.py b/invenio_config_tuw/curations/__init__.py index 1923bf4..244db8f 100644 --- a/invenio_config_tuw/curations/__init__.py +++ b/invenio_config_tuw/curations/__init__.py @@ -9,10 +9,12 @@ from .requests import ( TUWCurationRequest, + TUWCurationRequestReviewNotificationBuilder, TUWCurationRequestUploaderResubmitNotificationBuilder, ) __all__ = ( "TUWCurationRequest", + "TUWCurationRequestReviewNotificationBuilder", "TUWCurationRequestUploaderResubmitNotificationBuilder", ) diff --git a/invenio_config_tuw/curations/requests.py b/invenio_config_tuw/curations/requests.py index 5e3d3c3..abc0625 100644 --- a/invenio_config_tuw/curations/requests.py +++ b/invenio_config_tuw/curations/requests.py @@ -9,7 +9,9 @@ from invenio_curations.notifications.builders import ( CurationRequestActionNotificationBuilder, + CurationRequestReviewNotificationBuilder, ) +from invenio_curations.notifications.generators import GroupMembersRecipient from invenio_curations.requests.curation import ( CurationCreateAndSubmitAction, CurationRequest, @@ -17,6 +19,7 @@ from invenio_curations.requests.curation import ( CurationSubmitAction, ) from invenio_notifications.services.uow import NotificationOp +from invenio_requests.notifications.filters import UserRecipientFilter from invenio_users_resources.notifications.filters import UserPreferencesRecipientFilter from invenio_users_resources.notifications.generators import UserRecipient @@ -34,6 +37,21 @@ class TUWCurationRequestUploaderResubmitNotificationBuilder( recipient_filters = [UserPreferencesRecipientFilter()] +class TUWCurationRequestReviewNotificationBuilder( + CurationRequestReviewNotificationBuilder +): + """Notification builder for review action.""" + + recipients = [ + UserRecipient("request.created_by"), + GroupMembersRecipient("request.receiver"), + ] + recipient_filters = [ + UserPreferencesRecipientFilter(), + UserRecipientFilter("executing_user"), + ] + + class TUWCurationResubmitAction(CurationResubmitAction): """Notify both uploader and reviewer on resubmit, and auto-review.""" -- GitLab