Skip to content

[Refactor:Notifications] Convert Course Notifications to Vue#12159

Merged
bmcutler merged 31 commits intomainfrom
vue-noti-component
Nov 18, 2025
Merged

[Refactor:Notifications] Convert Course Notifications to Vue#12159
bmcutler merged 31 commits intomainfrom
vue-noti-component

Conversation

@JManion32
Copy link
Contributor

@JManion32 JManion32 commented Oct 28, 2025

Why is this Change Important & Necessary?

The course notification page has a different UI from the home page:

Course Notifications

image

Home Page

image

What is the New Behavior?

The course notifications page has been updated to use the same Vue components as the home page:

image

By using the existing Vue component, we can delete most of notifications.css and all of notifications.twig.

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

Ensure functionality of both course and home page notification panels remains intact and as expected.

Automated Testing & Documentation

The entire notification system does not yet have adequate e2e testing (see #11908). Perhaps the solution to that issue can include this new feature.

Other information

This shouldn't be a breaking change, however, it is altering the home page so if something goes wrong, it could prevent accessibility to the entire site.

When the seen count is updated, the sidebar count does not update dynamically:
image
I haven't been able to successfully implement this, but I do not think this PR should be held up by it. I will continue to look into it and either address here, or in a follow up PR.

sidebar.spec.js verifies that the CSS content of each page is consistent. (content exists under main). Each Vue migration is breaking this test since the Vue component sits on top of main, rather than nested inside of it. The current trend is to add exceptions to the test, but we will need a more steadfast solution soon.

The failing Ansible test seems to be unrelated to this PR, though this is the only one it is appearing on currently.

Created CourseNotifications.vue, which is the page that the NotificationsDisplay.vue component will sit on.

I will now add arguments for the component for mark all seen and settings.
Working on the padding between both
Logic in the notifications panel will be based on the course boolean. Trying to make mark_seen work on the notifications page.
There were duplicate styles since we were loading the old notification.css file. Added logic so we don't display course on course notifications page.

Now that styling is complete, the next commits will be the logic.
Synced up buttons, added mark seen functionality, and added notification links
@codecov
Copy link

codecov bot commented Oct 28, 2025

Codecov Report

❌ Patch coverage is 0% with 10 lines in your changes missing coverage. Please review.
✅ Project coverage is 21.71%. Comparing base (58b54df) to head (ae3f826).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##               main   #12159   +/-   ##
=========================================
  Coverage     21.71%   21.71%           
  Complexity     9612     9612           
=========================================
  Files           268      268           
  Lines         36073    36070    -3     
  Branches        475      475           
=========================================
  Hits           7832     7832           
+ Misses        27770    27767    -3     
  Partials        471      471           
Flag Coverage Δ
autograder 21.39% <ø> (ø)
js 2.07% <ø> (ø)
migrator 100.00% <ø> (ø)
php 20.71% <0.00%> (+<0.01%) ⬆️
python_submitty_utils 80.08% <ø> (ø)
submitty_daemon_jobs 90.72% <ø> (ø)

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.

Copy link
Contributor

@Rkoester47 Rkoester47 left a comment

Choose a reason for hiding this comment

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

I tested the functionality of the course notifications page on this branch, and everything seems to be working properly. I was able to click on individual notifications, mark individual notifications as seen, mark all as seen and also use the settings button. The home page notifications are also still working properly. The appearance of the notification page is clean and in line with the Home Page notifications now. Overall, this is a good change in terms of functionality and design as far as I can tell.

@github-project-automation github-project-automation bot moved this from Seeking Reviewer to Awaiting Maintainer Review in Submitty Development Oct 28, 2025
@RyanStyron RyanStyron self-requested a review October 29, 2025 06:10
@automateprojectmangement automateprojectmangement bot moved this from Awaiting Maintainer Review to In Review in Submitty Development Oct 29, 2025
Copy link
Contributor

@RyanStyron RyanStyron left a comment

Choose a reason for hiding this comment

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

I have thoroughly tested this refactor, and the functionality, sans the notification count updating, works as it did before.

@github-project-automation github-project-automation bot moved this from In Review to Awaiting Maintainer Review in Submitty Development Nov 4, 2025
@bmcutler
Copy link
Member

@JManion32
please resolve conflicts

@bmcutler
Copy link
Member

@JManion32

Looks like accessibility & upducks & registration are failing.
So I am hesitant to merge this now.

@bmcutler bmcutler merged commit be898aa into main Nov 18, 2025
67 of 71 checks passed
@bmcutler bmcutler deleted the vue-noti-component branch November 18, 2025 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants