Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exam mode: Fix missing repository lock notifications #7297

Merged
merged 29 commits into from
Dec 1, 2023

Conversation

Strohgelaender
Copy link
Contributor

@Strohgelaender Strohgelaender commented Sep 29, 2023

Checklist

General

Server

  • Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
  • I followed the coding and design guidelines.
  • I added multiple integration tests (Spring) related to the features (with a high test coverage).
  • I documented the Java code using JavaDoc style.

Client

  • Important: I implemented the changes with a very good performance, prevented too many (unnecessary) REST calls and made sure the UI is responsive, even with large data.
  • I followed the coding and design guidelines.
  • Following the theming guidelines, I specified colors only in the theming variable files and checked that the changes look consistent in both the light and the dark theme.
  • I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
  • I documented the TypeScript code using JSDoc style.
  • I added multiple screenshots/screencasts of my UI changes.
  • I translated all newly inserted strings into English and German.

Motivation and Context

The "The student repositories for this programming exercise were locked successfully." notification is missing for exam exercises, but it is an important piece of information for instructors to verify if the operation before and after the exam went well.

Description

The issue was that these type of notifications were "exercise updates" before. In exam exercises, these notifications get filtered out of from the notification bar (since the notification bar is not present during an exam and updates directly get highlighted in the exam viewer).

This PR introduces a new notification type for repository permission updates, which therefore won't be filtered out in the notification bar.

Steps for Testing

Prerequisites:

  • 1 Instructor
  • 1 Programming Exercise
  1. Press the "lock repositories" / "unlock repositories" buttons and check that a notification is present
  2. Wait until after the due date and check that an automatic notification is present.

Exam Mode Testing

Prerequisites:

  • 1 Instructor
  • 1 Exam with a Programming Exercise
  1. Press the "lock repositories" / "unlock repositories" buttons and check that a notification is present
  2. Wait until after the exam and check that an automatic notification is present.

Review Progress

Performance Review

  • I (as a reviewer) confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance
  • I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Exam Mode Test

  • Test 1
  • Test 2

Test Coverage

Screenshots

@github-actions github-actions bot added server Pull requests that update Java code. (Added Automatically!) client Pull requests that update TypeScript code. (Added Automatically!) labels Sep 29, 2023
@Strohgelaender Strohgelaender marked this pull request as ready for review October 8, 2023 10:38
@Strohgelaender Strohgelaender requested a review from a team as a code owner October 8, 2023 10:38
@Strohgelaender Strohgelaender temporarily deployed to artemis-test5.artemis.cit.tum.de October 9, 2023 14:38 — with GitHub Actions Inactive
Copy link
Contributor

@tobias-lippert tobias-lippert left a comment

Choose a reason for hiding this comment

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

Code looks good but I don't understand one client side change

tobias-lippert
tobias-lippert previously approved these changes Oct 17, 2023
Copy link
Contributor

@tobias-lippert tobias-lippert left a comment

Choose a reason for hiding this comment

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

Code LGTM

valentin-boehm
valentin-boehm previously approved these changes Oct 17, 2023
Copy link
Contributor

@valentin-boehm valentin-boehm left a comment

Choose a reason for hiding this comment

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

lgtm

@xHadie
Copy link

xHadie commented Oct 18, 2023

Tested on LS11
Automatic notifaction after due date:

  • notifcation was added to notification list and the bell icon showed that a new notification is present, but no growl notifaction bubble popped up.
    Exam mode
  • no notification shows up when exam mode is enabled
  • changing the submission policy from "Lock Repository" to either different option and back to "Lock Repository" results in an Internal server error.

@Strohgelaender
Copy link
Contributor Author

Strohgelaender commented Oct 19, 2023

@xHadie Thanks for testing.

but no growl notifaction bubble popped up

I assume you mean the notification on the bottom right of the screen by that. This is intentional, as these notifications should only be used for stuff that needs immediate attention, whereas these types of notifications are more a confirmation that don't require any manual action.

no notification shows up when exam mode is enabled

Do you mean while working on an exam? This is also correct, as we don't want to distract users while using the exam mode.

changing the submission policy from "Lock Repository" to either different option and back to "Lock Repository" results in an Internal server error.

This is unrelated to this PR, please open a GitHub issue to track this.

JanaNF
JanaNF previously approved these changes Nov 22, 2023
Copy link

@JanaNF JanaNF left a comment

Choose a reason for hiding this comment

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

Manual tested on legacy_ts11. Worked as expected.

JohannesStoehr
JohannesStoehr previously approved these changes Nov 24, 2023
Copy link
Contributor

@JohannesStoehr JohannesStoehr left a comment

Choose a reason for hiding this comment

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

Code

Copy link
Contributor

@tobias-lippert tobias-lippert left a comment

Choose a reason for hiding this comment

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

Code LGTM

Copy link
Contributor

@valentin-boehm valentin-boehm left a comment

Choose a reason for hiding this comment

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

Re-tested locally, works as expected

Copy link
Member

@maximiliansoelch maximiliansoelch left a comment

Choose a reason for hiding this comment

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

Code looks good.
Tested on legacy ts1, works as expected.

@maximiliansoelch maximiliansoelch added ready to merge maintainer-approved The feature maintainer has approved the PR and removed ready for review labels Dec 1, 2023
@maximiliansoelch maximiliansoelch added this to the 6.7.1 milestone Dec 1, 2023
@krusche krusche merged commit 868dd26 into develop Dec 1, 2023
42 of 44 checks passed
@krusche krusche deleted the bugifx/exam-update-notification branch December 1, 2023 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client Pull requests that update TypeScript code. (Added Automatically!) maintainer-approved The feature maintainer has approved the PR ready to merge server Pull requests that update Java code. (Added Automatically!)
Projects
None yet
Development

Successfully merging this pull request may close these issues.