diff --git a/openedx/core/djangoapps/notifications/base_notification.py b/openedx/core/djangoapps/notifications/base_notification.py index 89c61dd1ca99..4f178132aa9d 100644 --- a/openedx/core/djangoapps/notifications/base_notification.py +++ b/openedx/core/djangoapps/notifications/base_notification.py @@ -274,6 +274,25 @@ class NotificationType(TypedDict): 'filters': [FILTER_AUDIT_EXPIRED_USERS_WITH_NO_ROLE], }, + 'ora_reminder': { + 'notification_app': 'grading', + 'name': 'ora_reminder', + + 'info': 'Reminder notifications for learners who have pending self or peer review steps in an ORA.', + 'web': True, + 'email': True, + 'push': False, + 'email_cadence': EmailCadence.DAILY, + 'non_editable': ['push'], + 'content_template': _('<{p}>You have <{strong}>{pending_step} to complete for assessment ' + '<{strong}>{ora_name}'), + 'content_context': { + 'ora_name': 'Name of ORA in course', + 'pending_step': 'Pending step description (e.g. "self review" or "peer reviews")', + }, + + 'filters': [FILTER_AUDIT_EXPIRED_USERS_WITH_NO_ROLE], + }, 'new_instructor_all_learners_post': { 'notification_app': 'discussion', 'name': 'new_instructor_all_learners_post', diff --git a/openedx/core/djangoapps/notifications/config/waffle.py b/openedx/core/djangoapps/notifications/config/waffle.py index a17835c5f857..43f67f5f3f6a 100644 --- a/openedx/core/djangoapps/notifications/config/waffle.py +++ b/openedx/core/djangoapps/notifications/config/waffle.py @@ -38,3 +38,4 @@ # .. toggle_target_removal_date: 2026-05-27 # .. toggle_warning: When the flag is ON, Notifications will go through ace push channels. ENABLE_PUSH_NOTIFICATIONS = CourseWaffleFlag(f'{WAFFLE_NAMESPACE}.enable_push_notifications', __name__) + diff --git a/openedx/core/djangoapps/notifications/docs/settings.md b/openedx/core/djangoapps/notifications/docs/settings.md index de39446680bd..b1940798dff3 100644 --- a/openedx/core/djangoapps/notifications/docs/settings.md +++ b/openedx/core/djangoapps/notifications/docs/settings.md @@ -47,6 +47,7 @@ Notification keys are listed in the table below. More notifications may be added | 12 | updates | course_updates | False | Course updates | | 13 | grading | ora_staff_notifications | False | New ORA submission for staff | | 14 | grading | ora_grade_assigned | False | ORA grade received | +| 15 | grading | ora_reminder | False | ORA peer/self review reminder | ### Example configuration for overriding notification preferences: diff --git a/openedx/core/djangoapps/notifications/email/notification_icons.py b/openedx/core/djangoapps/notifications/email/notification_icons.py index 2b420d710995..4c0dbe42ac90 100644 --- a/openedx/core/djangoapps/notifications/email/notification_icons.py +++ b/openedx/core/djangoapps/notifications/email/notification_icons.py @@ -36,6 +36,7 @@ def get_icon_name_for_notification_type(cls, notification_type, default="POST_OU "course_updates": cls.NEWSPAPER, "ora_staff_notifications": cls.OPEN_RESPONSE_OUTLINE, "ora_grade_assigned": cls.OPEN_RESPONSE_OUTLINE, + "ora_reminder": cls.OPEN_RESPONSE_OUTLINE, } return notification_type_dict.get(notification_type, default)