Skip to content

[Feature:Notifications] Sync Notifications Between Courses#12762

Merged
bmcutler merged 56 commits into
mainfrom
Sync-Notification-Settings-between-courses
Jun 8, 2026
Merged

[Feature:Notifications] Sync Notifications Between Courses#12762
bmcutler merged 56 commits into
mainfrom
Sync-Notification-Settings-between-courses

Conversation

@aconfo

@aconfo aconfo commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Why is this Change Important & Necessary?

Partially addresses one item from #11732

Currently there is no way to quickly change the settings of all courses to a specific desired setting. This will help users who may have a significant number of courses to quickly and efficiently apply all their preferred notification settings to whichever courses they wish to all at once.

What is the New Behavior?

This change adds 2 sync notification buttons in the notification's settings section of Submitty. They should be at the top right, and bottom left of the page. This will allow a user to set all selected course's notifications to the current course the user is on. Also included a select all and clear selection button for the popup.
before:
image
After:
image
image
image

What steps should a reviewer take to reproduce or test the bug or new feature?

To test these changes, login as any user, enter any course, and navigate to notifications->settings
At this point two Sync notification settings buttons should be present as seen in the earlier images.
Click on either button and it should open a popup that displays all currently enrolled courses
Change the current courses settings and try syncing it to other courses, and vice versa.
Make sure that all notifications change as expected, and that there are no errors when doing so.

Automated Testing & Documentation

Manually tested through a VM across multiple courses

Other information

There are no breaking changes.
There are no migrations.
Syncing should be possible only through courses the user is currently enrolled in.

added changes to the notificationSettings.twig to display the new buttons. Still need to implement changes in the controller and maybe notification view
started implementing syncSettings in controller
try changing off of available_courses
Wrong function name correction
Attempt to implement popup, should at the very least open a popup
Try fix include error
added notes for myself, plus example function
Fixed the popup so it displays, plus attempts at fixing other parts of the code
weird commit that doesnt appear locally, trying to resolve it
weird commit that doesnt appear locally, trying to resolve it
Tried changing some of the functions in notification settings as well as the popup twig. Still not functioning as intended
Removed some of the earlier code that turned out non useful
Try to fix backend implementation for the popup to load courses. Currently not working - not loading the user's courses
I changed what I added to the NotificationController to a function, as well as a slight name change in NotificationSettings.twig
Courses now appear in the Sync Notification popup, but requires a great deal of tweaking
Swap from a selection to a checkbox, still many bugs to deal with
Some changes to the formatting, mostly just saving to save progress, does not necessarily work
Remove minor comments
minor changes to comments/naming/spacing
@github-project-automation github-project-automation Bot moved this to Seeking Reviewer in Submitty Development Apr 7, 2026
@automateprojectmangement automateprojectmangement Bot moved this from Seeking Reviewer to Work in Progress in Submitty Development Apr 7, 2026
@codecov

codecov Bot commented Apr 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 30 lines in your changes missing coverage. Please review.
✅ Project coverage is 21.60%. Comparing base (cc61478) to head (cf2dcd4).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##               main   #12762      +/-   ##
============================================
- Coverage     21.62%   21.60%   -0.02%     
- Complexity     9824     9831       +7     
============================================
  Files           268      268              
  Lines         36816    36841      +25     
  Branches        490      490              
============================================
  Hits           7960     7960              
- Misses        28370    28395      +25     
  Partials        486      486              
Flag Coverage Δ
autograder 21.32% <ø> (ø)
js 2.02% <ø> (ø)
migrator 100.00% <ø> (ø)
php 20.65% <0.00%> (-0.02%) ⬇️
python_submitty_utils 80.08% <ø> (ø)
submitty_daemon_jobs 91.13% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread site/app/controllers/NotificationController.php Outdated
Comment thread site/app/controllers/NotificationController.php Outdated
Comment thread site/app/controllers/NotificationController.php Outdated
Comment thread site/app/templates/NotificationSettings.twig Outdated
Comment thread site/app/templates/NotificationSettings.twig Outdated
Comment thread site/app/templates/SyncSettingsPopup.twig Outdated
Luftwaffle01 and others added 4 commits April 7, 2026 17:24
Fixed the error displaying the popup. No longer includes archived classes. Fixed coloring issue for popup. Cleaned up several large commented code. Start setup to make Sync settings button work.
Many changes to try and implement backend, still needs fixing. Incomplete
Attempt to fix, currently doesnt work
@JManion32

Copy link
Copy Markdown
Contributor

({{ course.getTerm() }}) — {{ course.getTitle() }}

Luftwaffle01 and others added 3 commits April 30, 2026 18:57
Fix the formatting for popup once more, should potentially be the last time
Slight tweak to the final formatting change for popup

@JManion32 JManion32 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Notes from our demo:

  1. Use course code and course title (similar to mark seen on home page)
  2. Use Spring 2026 instead of s26
  3. Do not include the current course in the popup
  4. Label text: "To copy the notification settings from Spring 2026 to other courses, select them from the list below."
  5. Swap the Sync settings button and Close button
  6. Remove notification button grid padding so the header is aligned
  7. Fix narrow button overlap (use flex-grow and flex-wrap)
  8. Bottom button should be on the right side
  9. Add a sentence about what the button does ("To copy the notification settings from Spring 2026 to other courses, click here.")

Comment thread site/app/templates/NotificationSettings.twig
Added a description for the top right sync button, as well as swap the close and sync inside the popup
@github-actions github-actions Bot added the Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete label May 23, 2026
@dagemcn dagemcn removed the Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete label Jun 3, 2026
@dagemcn dagemcn self-assigned this Jun 3, 2026

@dandrecollins07-ctrl dandrecollins07-ctrl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verified both Sync notification settings buttons open the popup, courses can be selected/cleared, and syncing updates the selected courses’ notification settings as expected. Approving.

@bmcutler
bmcutler merged commit 2e5837c into main Jun 8, 2026
47 of 50 checks passed
@bmcutler
bmcutler deleted the Sync-Notification-Settings-between-courses branch June 8, 2026 18:26
@github-project-automation github-project-automation Bot moved this from Work in Progress to Done in Submitty Development Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

7 participants