Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions openedx/core/djangoapps/notifications/base_notification.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
Comment on lines +278 to +286
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding the new ora_reminder type will change the payload returned by the notification preferences APIs (they derive from COURSE_NOTIFICATION_TYPES). Existing tests hard-code expected responses (e.g., openedx/core/djangoapps/notifications/tests/test_views.py includes only ora_staff_notifications and ora_grade_assigned), so CI will fail unless those expectations/non_editable maps are updated to include ora_reminder.

Copilot uses AI. Check for mistakes.
'content_template': _('<{p}>You have <{strong}>{pending_step}</{strong}> to complete for assessment '
'<{strong}>{ora_name}</{strong}></{p}>'),
'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',
Expand Down
1 change: 1 addition & 0 deletions openedx/core/djangoapps/notifications/config/waffle.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__)

1 change: 1 addition & 0 deletions openedx/core/djangoapps/notifications/docs/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
Loading