diff --git a/invenio_config_tuw/config.py b/invenio_config_tuw/config.py index b913ac498cf67a652fe3fbe7902e9b7b634fdc41..6c092ccc055dd1d05e00075d493c193e2b1e111a 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 1923bf4a99c4afc44ad2e4175e3833651de29e8b..244db8f2ee693e082ac7477c9f56f54b997b0ac7 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 5e3d3c3b105eaeff38700d95d92324a622511168..abc0625cff6e31023e726ee551243f3de5784670 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."""