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

[#11466] Add remind sub-menu to UI #11510

Merged
merged 22 commits into from
Feb 15, 2022

Conversation

NicolasCwy
Copy link
Contributor

@NicolasCwy NicolasCwy commented Dec 19, 2021

Fixes #11466

Outline of Solution

  1. Add dropdown to Remind button
  • "remind all non-submitters" - opens a modal and auto selects both students and instructors that have not submitted feedback session
  • "select non-submitters to remind" - opens a modal with no selection made

image

  1. Fixed bug where "select non-submitters to remind" would open the model with the "Select all instructors not yet submitted" option checked even if no instructor was checked (all instructors submitted form)
    image
  • Amended logic in send-reminders-to-respondents-modal.component.ts isAllYetToSubmitStudentsSelected and isAllYetToSubmitInstructorsSelected which is used to determine if "Select all instructors not yet submitted" and "Select all students not yet submitted" boxes are checked
  1. Fixed E2E tests
  • InstructorFeedbackSessionsPageE2ETest and InstructorHomePageE2ETest tests both reminder options. Due to the constraint of how many students/ instructors can use TestProperties.TEST_EMAIL, only one non-submitter student is verified to have received the reminder email.

@nusoss-bot
Copy link

Guys, This PR seems to be stalling (no activities for the past 7 days). 🐌 😢
Hope someone can get it to move forward again soon...

@daongochieu2810
Copy link
Contributor

@NicolasCwy Seems like CI is failing, let us know once you fix it

@jianhandev jianhandev added the s.Ongoing The PR is being worked on by the author(s) label Dec 29, 2021
@NicolasCwy
Copy link
Contributor Author

Still working on this, taking abit of a break! Will convert it into a PR when I'm ready for review

@nusoss-bot
Copy link

Guys, This PR seems to be stalling (no activities for the past 8 days). 🐌 😢
Hope someone can get it to move forward again soon...

Selecting "Select all non-submitters" checks the modal option "Select
all instructors not yet submitted" and "Select all students not yet
submitted" in modal even when all instructors or students have completed
the have completed the feedback session.

Change isAllYetToSubmitInstructorsSelected and
isAllYetToSubmitStudentsSelected functions to check that there exist
entities who have not completed the form before checking option.
Copy link
Member

@samuelfangjw samuelfangjw left a comment

Choose a reason for hiding this comment

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

Hey! Took a quick look at your PR while you are fixing the e2e tests :)

@NicolasCwy NicolasCwy marked this pull request as ready for review January 27, 2022 06:00
@NicolasCwy
Copy link
Contributor Author

NicolasCwy commented Jan 27, 2022

Hi @daongochieu2810 I have finished the PR, would I need to create test for the bug I fixed (Number 2)? Thinking of adding tests to send-reminders-to-respondents-modal.component.spec.ts to test the isAllYetToSubmitStudentsSelected and isAllYetToSubmitInstructorsSelected

Copy link
Member

@samuelfangjw samuelfangjw left a comment

Choose a reason for hiding this comment

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

Implementation looks good to me! Just a small code quality related comment below.

@NicolasCwy
Copy link
Contributor Author

@samuelfangjw I've tried to create an E2E test to check if all non-submitters have been notified when the reminder button has been clicked, but I'm not sure if there's something wrong with the BaseE2ETestCase.verifyEmailSent() as I am able to call it more times than there are emails sent out, and it would not fail although the implementation seems to search unread messages and mark the message with the subject as read.

@samuelfangjw
Copy link
Member

@samuelfangjw I've tried to create an E2E test to check if all non-submitters have been notified when the reminder button has been clicked, but I'm not sure if there's something wrong with the BaseE2ETestCase.verifyEmailSent() as I am able to call it more times than there are emails sent out, and it would not fail although the implementation seems to search unread messages and mark the message with the subject as read.

Screenshot 2022-01-28 at 1 02 31 PM

Looking at the method, I believe it skips the check on the dev server.

Comment on lines 62 to 73
@BeforeClass
public void classSetup() {
deleteDownloadsFile(fileName);

// ------------------------------------ Prepare student non-submitter data ------------------------------------ //

StudentAttributes secondStudentNonSubmitter = testData.students.get("IHome.benny.c.tmms@IHome.CS2104");
secondStudentNonSubmitter.setEmail(TestProperties.TEST_EMAIL);
StudentAttributes thirdStudentNonSubmitter = testData.students.get("IHome.danny.e.tmms@IHome.CS2104");
thirdStudentNonSubmitter.setEmail(TestProperties.TEST_EMAIL);

studentNonSubmitters = Arrays.asList(studentToEmail, secondStudentNonSubmitter, thirdStudentNonSubmitter);
Copy link
Member

Choose a reason for hiding this comment

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

I think it would be more appropriate to place this in the prepareTestData method, since this seems like preparing test data.

Copy link
Contributor Author

@NicolasCwy NicolasCwy Jan 31, 2022

Choose a reason for hiding this comment

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

I thought so too, but saw that InstructorFeedbackReportPageE2ETest.java, was doing it in the classSetup(), which I thought was to keep the prepareTestData method lean, should I still move it?

Copy link
Member

Choose a reason for hiding this comment

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

Yes! For InstructorFeedbackReportPageE2ETest.java, in the classSetup() method, they are fetching data from the database but not modifying anything. In the prepareTestData method, they are modifying the testData that will be persisted into the database. In fact, there is a similar line of code in prepareTestData() that is almost identical to the changes you made.

studentToEmail = testData.students.get("Emily");
studentToEmail.setEmail(TestProperties.TEST_EMAIL);
removeAndRestoreDataBundle(testData);

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yea I saw this, I thought because the studentToEmail and the instructor are entities used in every test as compared to my test data which was used only in one test, I would have to differentiate them by placing them in a different method. Will make the changes!

@samuelfangjw
Copy link
Member

samuelfangjw commented Jan 28, 2022

@samuelfangjw The new E2E tests I've added does not check if the instructor (who is a non-submitter) would receive the email, only students are checked. This is because the instructor email is used to create sessions and I didn't know if there would be any problems changing the email after the creation of the session.

protected void prepareTestData() {
        testData = loadDataBundle("/InstructorFeedbackSessionsPageE2ETest.json");
        studentToEmail = testData.students.get("charlie.tmms@IFSess.CS1101");
        studentToEmail.setEmail(TestProperties.TEST_EMAIL);
        removeAndRestoreDataBundle(testData);
        ...
    }

I don't believe there will be any issue! Looking at the existing implementation of prepareTestData, probably can add another instructorToEmail if you wish to test it :)

@NicolasCwy
Copy link
Contributor Author

@samuelfangjw The new E2E tests I've added does not check if the instructor (who is a non-submitter) would receive the email, only students are checked. This is because the instructor email is used to create sessions and I didn't know if there would be any problems changing the email after the creation of the session.

protected void prepareTestData() {
        testData = loadDataBundle("/InstructorFeedbackSessionsPageE2ETest.json");
        studentToEmail = testData.students.get("charlie.tmms@IFSess.CS1101");
        studentToEmail.setEmail(TestProperties.TEST_EMAIL);
        removeAndRestoreDataBundle(testData);
        ...
    }

I don't believe there will be any issue! Looking at the existing implementation of prepareTestData, probably can add another instructorToEmail if you wish to test it :)

I would be able to add another instructor to test that instructors are emailed. I think I'm concerned if omitting the instructor who is creating the session is ok?

@samuelfangjw
Copy link
Member

@samuelfangjw The new E2E tests I've added does not check if the instructor (who is a non-submitter) would receive the email, only students are checked. This is because the instructor email is used to create sessions and I didn't know if there would be any problems changing the email after the creation of the session.

protected void prepareTestData() {
        testData = loadDataBundle("/InstructorFeedbackSessionsPageE2ETest.json");
        studentToEmail = testData.students.get("charlie.tmms@IFSess.CS1101");
        studentToEmail.setEmail(TestProperties.TEST_EMAIL);
        removeAndRestoreDataBundle(testData);
        ...
    }

I don't believe there will be any issue! Looking at the existing implementation of prepareTestData, probably can add another instructorToEmail if you wish to test it :)

I would be able to add another instructor to test that instructors are emailed. I think I'm concerned if omitting the instructor who is creating the session is ok?

I don't think it matters, will probably work. I believe instructor is associated to course by courseId and not email

@nusoss-bot
Copy link

Guys, This PR seems to be stalling (no activities for the past 7 days). 🐌 😢
Hope someone can get it to move forward again soon...

Students with the same email are not persisted in the database.
The tests added therefore did not work but passed.
@NicolasCwy
Copy link
Contributor Author

@samuelfangjw As spoken since we are unable to set multiple entities to use TestProperties.TEST_EMAIL, because removeAndRestoreDataBundle persists entities and we are not able to persist entities. I would only be testing that remind all and remind selected non-submitters reminds one of the non-submitters

Copy link
Member

@samuelfangjw samuelfangjw left a comment

Choose a reason for hiding this comment

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

Looks good to me :)

@samuelfangjw samuelfangjw added s.FinalReview The PR is ready for final review and removed s.Ongoing The PR is being worked on by the author(s) labels Feb 9, 2022
@jianhandev jianhandev added s.ToMerge The PR is approved by all reviewers including final reviewer; ready for merging and removed s.FinalReview The PR is ready for final review labels Feb 13, 2022
@madanalogy madanalogy added the c.Feature User-facing feature; can be new feature or enhancement to existing feature label Feb 14, 2022
@madanalogy madanalogy added this to the V8.8.0 milestone Feb 14, 2022
@madanalogy madanalogy merged commit 0da0e52 into TEAMMATES:master Feb 15, 2022
kaixin-hc pushed a commit to kaixin-hc/teammates that referenced this pull request Mar 31, 2022
* Add remind sub-menu to UI

* Add logic to reminder button modal

* Update snapshots tests for reminder sub-menu

* Fix bug that incorrectly selects modal option

Selecting "Select all non-submitters" checks the modal option "Select
all instructors not yet submitted" and "Select all students not yet
submitted" in modal even when all instructors or students have completed
the have completed the feedback session.

Change isAllYetToSubmitInstructorsSelected and
isAllYetToSubmitStudentsSelected functions to check that there exist
entities who have not completed the form before checking option.

* Style remind button

* Update snapshot tests

* Fix lint errors

* Change button group to use bootstrap flex class

* Add back loading condition

* Update send reminder email E2E test

* Update snapshot tests

* Fix typo in E2E tests

* Make E2E helper function name more descriptive

* Add E2E to InstructorFeedbackSession

* Remove unused event emitter

Update snapshot tests

* Add E2E test to InstructorFeedbackSession

Add E2E test to test remind all non-submitters button and ensure that sent to student non-submitters.

* Fix typo in E2E test

* Removed tests for more than one student

Students with the same email are not persisted in the database.
The tests added therefore did not work but passed.

* Fix lint error

Co-authored-by: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
kaixin-hc added a commit to kaixin-hc/teammates that referenced this pull request Mar 31, 2022
commit 1eb42d7
Merge: 4e4b5d6 7dfda8b
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Thu Mar 31 21:30:13 2022 +0800

    Merge branch 'master' into mb-website

commit 4e4b5d6
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Thu Mar 31 21:05:13 2022 +0800

    [TEAMMATES#11684] Fix minor typos (TEAMMATES#11685)

    * Fix minor typos

    * Remove unnecessary multi-byte characters

commit d495c3b
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Mar 29 00:21:23 2022 +0800

    [TEAMMATES#11673] Add ESLint rule for member delimiter style (TEAMMATES#11675)

commit 808c445
Author: Mo Zongran <mozongran@gmail.com>
Date:   Mon Mar 28 23:34:00 2022 +0800

    [TEAMMATES#11585] Fix unnecessary data read in expected submission count (TEAMMATES#11659)

commit 105fa5a
Author: Nicolas Chang Weng Yew <nicolas.chang99@gmail.com>
Date:   Mon Mar 28 18:40:42 2022 +0800

    [TEAMMATES#8184] Instructor create session: default questions: replace 'contribution question' (TEAMMATES#11613)

commit 446f5be
Author: Howard Liu <howard@ixnet.work>
Date:   Mon Mar 28 15:45:30 2022 +0800

    [TEAMMATES#11621] [TEAMMATES#11622] Minor fixes for angular.json and typos (TEAMMATES#11672)

commit 351141b
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Thu Mar 31 20:40:45 2022 +0800

    Remove unneeded images and lines of code

commit f28c10a
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Mar 28 12:13:12 2022 +0800

    Fix Typo

commit b89277a
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Mon Mar 28 01:00:54 2022 +0800

    [TEAMMATES#11674] Fix duplicate time picker option when 23:00 selection (TEAMMATES#11677)

commit c779df6
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Sun Mar 27 23:35:57 2022 +0800

    [TEAMMATES#11618] Backend for usage statistics collection (TEAMMATES#11666)

    * Add usage statistics entity + attributes

    * Add API to fetch usage statistics objects

    * Limit statistics query to six months

    * Add cron job action to collect response stats

    * Extend stats collection function to few other entities

    * Extend stats collection function to number of emails sent and submissions

    * Add some tests to non-trivial backend methods

commit cafe194
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sun Mar 27 22:58:26 2022 +0800

    [TEAMMATES#11655] Devise a better way to handle duplicate account requests (TEAMMATES#11657)

commit 489106f
Author: FergusMok <FergusMok1@gmail.com>
Date:   Sun Mar 27 19:54:58 2022 +0800

    [TEAMMATES#11086] Enrolling students: show a progress indicator when enrolling a large class (TEAMMATES#11600)

commit 9564596
Author: Mo Zongran <mozongran@gmail.com>
Date:   Tue Mar 22 21:56:47 2022 +0800

    [TEAMMATES#11585] Add key only queries to data count and existential checks (TEAMMATES#11662)

    * fix: change limit 1 to keys only query for existential check

    * update: add method to get the student count in a team in a course

commit 29262c8
Author: LI JIANHAN <59337195+jianhandev@users.noreply.github.com>
Date:   Mon Mar 21 00:58:46 2022 +0800

    [TEAMMATES#8011] Improve scalability of student cascade delete (TEAMMATES#11574)

    * Limit number of students to delete per request in backend

    * Update component tests for delete students with limit

    * Break up large delete students request in frontend

    * Add frontend test for students batch delete

    * Enforce typing for CourseStatistics object in test file

    * Show correct toast type

    Co-authored-by: jianhandev <jianhandev@gmail.com>

commit 12bb18b
Author: Howard Liu <howard@ixnet.work>
Date:   Thu Mar 17 00:13:26 2022 +0800

    [TEAMMATES#11570] Move all external service classes to new package (TEAMMATES#11577)

    * Move all external service classes to new package

    * Update design diagram and documents

    * Update design document and diagram

    * Amend docs based on comments

commit 564dcfc
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Mon Mar 14 23:28:35 2022 +0800

    [TEAMMATES#11647] Update developers

commit 2a8ea4a
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Mar 14 22:09:04 2022 +0800

    [TEAMMATES#11640] Apply lazy-loading of question contents in session submission page (TEAMMATES#11642)

    * Load recipients and responses only when in view

    * Add button to submit responses for individual questions

    * Add E2E test for submitting response to one question only

    * Rephrase saving complete modal when there is only one question to reduce ambiguity

commit e587d06
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Mar 14 21:13:16 2022 +0800

    [TEAMMATES#11644] Remove webmaster/webtool files from source control (TEAMMATES#11645)

    * Add webtools folder with .gitkeep

    * Remove all hardcoded webtool files

commit 0b713bb
Author: Howard Liu <howard@ixnet.work>
Date:   Mon Mar 14 20:37:44 2022 +0800

    [TEAMMATES#11547] Remove outdated instructor help information (TEAMMATES#11555)

commit 69d4c43
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Mar 28 11:44:11 2022 +0800

    Separate contributing file to remove frontmatter from it

commit 38cb4b5
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Thu Mar 17 16:45:10 2022 +0800

    Add documentation

    Remove .mbd file extensions from site.json

    Remove irrelevant text

    Change Contributing file name references to CONTRIBUTING

    CONTRIBUTING.md is a special file in git.

    Rename contributing.md to CONTRIBUTING.md

    Streamline frontmatter

    Revert "Change Contributing file name references to CONTRIBUTING"

    This reverts commit 4900cc2.

commit 3de6cab
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Wed Mar 16 18:14:41 2022 +0800

    Add titles to pages, change favicon

commit 377a52f
Author: Mo Zongran <mozongran@gmail.com>
Date:   Sun Mar 13 22:21:50 2022 +0800

    [TEAMMATES#11143] Refactor session link recovery logic (TEAMMATES#11159)

commit cb6726b
Author: Mo Zongran <mozongran@gmail.com>
Date:   Sun Mar 13 21:57:10 2022 +0800

    [TEAMMATES#11585] Remove unnecessary data read (TEAMMATES#11646)

commit 30b4667
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sat Mar 12 17:01:54 2022 +0800

    [TEAMMATES#11633] Remove overwritten text-break class (TEAMMATES#11634)

commit ddfe505
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Fri Mar 11 21:19:33 2022 +0800

    [TEAMMATES#11433] Admin: Give a way to remove unregistered instructors and their data (TEAMMATES#11582)

    * Add delete account request function in account service

    * Add delete button for account request on admin search page

    * Add backend validation to prevent account request of registered instructor from being deleted

    * Add admin search page e2e tests for deletion of account request

    * Remove redundant hasInstructor attribute

commit 9e449c9
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Fri Mar 11 08:36:42 2022 +0800

    [TEAMMATES#11630] [TEAMMATES#11631] Update conditions for session closing and closed emails (TEAMMATES#11635)

    * Send session closing email to all students/instructors

    * Repurpose session closed email to co-owner only

commit d0d63da
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Fri Mar 11 07:23:17 2022 +0800

    [TEAMMATES#11626] New instructors: set the session timestamps of the sample course to match user (TEAMMATES#11627)

    * Use demo.timezone placeholder to indicate string to replace

    * Make sample data session times dynamic

commit 5e6b116
Author: FergusMok <FergusMok1@gmail.com>
Date:   Fri Mar 11 02:38:26 2022 +0800

    [TEAMMATES#10843] Instructor viewing results: incorrect state shown briefly when expanding the non-submitters panel (TEAMMATES#11595)

commit 019cb9e
Author: Howard Liu <howard@ixnet.work>
Date:   Fri Mar 11 02:05:43 2022 +0800

    [TEAMMATES#11588] Fix incorrect loading for student result page (TEAMMATES#11604)

commit ab4dc55
Author: Zhao Jingjing <54243224+zhaojj2209@users.noreply.github.com>
Date:   Thu Mar 10 21:50:19 2022 +0800

    [TEAMMATES#11370] Copying question from another session: optimize fetching of available questions (TEAMMATES#11566)

commit 93a93e7
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Mar 7 14:52:10 2022 +0800

    Fix inconsistent spacing

    Change emojis to icons

    Rename CONTRIBUTING.md to contributing.md

commit f779ff7
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Wed Mar 2 15:14:06 2022 +0800

    [TEAMMATES#11579] [TEAMMATES#11610] Update front page data + remove usermap page (TEAMMATES#11616)

    * Remove usermap-related files

    * Remove topojson library

    * Update committers + senior members list

    * Update developers list

    * Update submission base number

    * Update users number in home page

commit 866e030
Author: Hardik Ruparel <hardikruparel14@gmail.com>
Date:   Tue Mar 1 21:52:33 2022 -0800

    [TEAMMATES#11598] Outdated link in Solr documentation (TEAMMATES#11601)

commit e00bcd7
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Mar 1 00:49:31 2022 +0800

    [TEAMMATES#11591] Use Firefox 96 in E2E tests (TEAMMATES#11611)

commit 98518a6
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Thu Mar 31 21:03:09 2022 +0800

    [TEAMMATES#11345] Update Angular to 12 (TEAMMATES#11509)

commit e4680e1
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Feb 28 14:16:57 2022 +0800

    [TEAMMATES#11607] Update back-end dependencies (TEAMMATES#11608)

    * Update Gradle to 7.4

    * Update lint tools to latest

    * Fix newly flagged lint issues

    * Fix deprecated code usages

    * Fix deprecated java 5-7 practices

    * Copy full implementation of readExternal from time.zone classes

    * Update non-GCP dependencies to latest

    * Update GCP dependencies to latest

commit 8c55c68
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Feb 28 21:59:56 2022 +0800

    Add line about markbind setup in setting-up

    Also minor chores

commit 4988607
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Feb 28 21:33:13 2022 +0800

    Add logo images

commit 1dea9d2
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Sat Feb 26 11:11:37 2022 +0800

    [TEAMMATES#11599] Update developers

commit eb5c160
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sat Feb 26 11:07:39 2022 +0800

    [TEAMMATES#11583] Add account request entity to storage component diagram (TEAMMATES#11584)

commit 741350d
Author: Martin Larsson <martin.99.larsson@telia.com>
Date:   Fri Feb 25 05:11:23 2022 +0100

    [TEAMMATES#11592] Wrong argument order in populateFieldsToGenerateInQuestion causes NPE (TEAMMATES#11593)

    * test: add tests for IN_SAME_SECTION

    * fix: correct argument order for getStudentForEmail

commit 608e101
Author: Nicolas Chang Weng Yew <nicolas.chang99@gmail.com>
Date:   Wed Feb 23 16:46:17 2022 +0800

    [TEAMMATES#11578] Make user cookie time sensitive (TEAMMATES#11581)

    * Add expiration time to cookies

    * Add UserInfo cookie test

    * Remove magic number and change expiry time to long

    * Add validity test

    * Change expiryTime setter to use long parameter

commit 524f247
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Sun Feb 20 23:55:17 2022 +0800

    [TEAMMATES#11568] Update developers

commit 54302e9
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Sat Feb 19 22:08:34 2022 +0800

    [TEAMMATES#9152] Add more SpotBugs rules (TEAMMATES#11580)

commit 0ecf769
Author: Howard Liu <howard@ixnet.work>
Date:   Thu Feb 17 21:31:41 2022 +0800

    [TEAMMATES#11487] Disable mouse wheel events for number inputs (TEAMMATES#11542)

    * Disable mouse wheel events for number inputs

    - Prevent mouse wheel scroll from changing students' number inputs

    * Revert "Disable mouse wheel events for number inputs"

    This reverts commit 9429e87.

    * Disable wheel for numeric inputs using directive

    - New WheelDisablerDirective and respective module is created
    - Updated snapshot for session-submission-page

    * Fix linting errors

commit 9e90de3
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Feb 15 23:58:22 2022 +0800

    [TEAMMATES#11540] Make maintainer logs interface scrollable (TEAMMATES#11545)

    * Allow maintainer logs output to scroll

    * Enlarge scrollable area

    * Replace css selectors with nested sass selectors

commit 96d899f
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Tue Feb 15 22:35:57 2022 +0800

    [TEAMMATES#11559] Include session submission/results URL for instructor in instructor-addressed emails (TEAMMATES#11561)

commit d944d6d
Author: Howard Liu <howard@ixnet.work>
Date:   Tue Feb 15 21:51:19 2022 +0800

    [TEAMMATES#11551] Fix incorrect message for student home page (TEAMMATES#11563)

commit e361590
Author: Jay Ting <65202977+jayasting98@users.noreply.github.com>
Date:   Tue Feb 15 21:21:21 2022 +0800

    [TEAMMATES#11548] Add edit functionality for admins adding new instructors (TEAMMATES#11549)

commit d45173c
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Feb 15 11:31:32 2022 +0800

    [TEAMMATES#9031] Allow adding of comment to MSQ questions (TEAMMATES#11546)

    * Allow adding of comment to MSQ questions

    * Fix typo in session-submission-page test

    * Fix some comments appearing in wrong column in downloaded csv file

    * Remove impossible test

commit 12843cd
Author: Nicolas Chang Weng Yew <nicolas.chang99@gmail.com>
Date:   Tue Feb 15 10:37:45 2022 +0800

    [TEAMMATES#11466] Add remind sub-menu to UI (TEAMMATES#11510)

    * Add remind sub-menu to UI

    * Add logic to reminder button modal

    * Update snapshots tests for reminder sub-menu

    * Fix bug that incorrectly selects modal option

    Selecting "Select all non-submitters" checks the modal option "Select
    all instructors not yet submitted" and "Select all students not yet
    submitted" in modal even when all instructors or students have completed
    the have completed the feedback session.

    Change isAllYetToSubmitInstructorsSelected and
    isAllYetToSubmitStudentsSelected functions to check that there exist
    entities who have not completed the form before checking option.

    * Style remind button

    * Update snapshot tests

    * Fix lint errors

    * Change button group to use bootstrap flex class

    * Add back loading condition

    * Update send reminder email E2E test

    * Update snapshot tests

    * Fix typo in E2E tests

    * Make E2E helper function name more descriptive

    * Add E2E to InstructorFeedbackSession

    * Remove unused event emitter

    Update snapshot tests

    * Add E2E test to InstructorFeedbackSession

    Add E2E test to test remind all non-submitters button and ensure that sent to student non-submitters.

    * Fix typo in E2E test

    * Removed tests for more than one student

    Students with the same email are not persisted in the database.
    The tests added therefore did not work but passed.

    * Fix lint error

    Co-authored-by: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>

commit 27c0d59
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sun Feb 13 16:47:27 2022 +0800

    [TEAMMATES#8787] New instructors: set the time zone of the sample course to match user (TEAMMATES#11557)

commit d375d0e
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sun Feb 13 15:44:20 2022 +0800

    [TEAMMATES#11553] Make account requests searchable in admin search page (TEAMMATES#11560)

commit 47965ae
Author: FergusMok <FergusMok1@gmail.com>
Date:   Sat Feb 12 18:36:31 2022 +0800

    [TEAMMATES#11152] Student update profile: profile image does not display correctly when certain formats are used  (TEAMMATES#11550)

    * Add validation for student profile picture file types

    * Add more user-friendly notice message

    * Change validProfileFileTypes to readonly

    * Fix linting problems

commit c7fb26e
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Feb 28 11:19:36 2022 +0800

    chore: fix newline

commit 6daef05
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Feb 14 14:44:49 2022 +0800

    Chore: Add new line

commit 42325a0
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Thu Mar 31 21:01:32 2022 +0800

    Add workflow actions

    Add documentation update about using markbind

commit 9cd316b
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Feb 14 14:00:59 2022 +0800

    # This is a combination of 4 commits.
    # This is the 1st commit message:

    Add workflow actions

    # This is the commit message #2:

    change back from .html to .md where possible

    # This is the commit message #3:

    Add documentation update about using markbind

    # This is the commit message #4:

    Add documentation link in sidebar

commit 484b909
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Mon Feb 7 12:09:54 2022 +0800

    Rearrange site layout to make pages more obvious

    Change Design.md to use .puml files

    Add links to site-nav

    remove _site files from cache

    Remove unnecessary files

    Add about page

commit 3a523df
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Mon Feb 7 11:17:03 2022 +0800

    [TEAMMATES#11554] Update developers

commit ef604b8
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Feb 7 10:50:26 2022 +0800

    [TEAMMATES#11537] Fix unstable E2E tests (TEAMMATES#11558)

    * Add wait for page load

    * Capture elements on demand

    * Use value of timeout from test properties

commit 09eacf5
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Sun Feb 6 23:23:45 2022 +0800

    [TEAMMATES#11357] Allow access to submission/results page for unregistered instructors (TEAMMATES#11488)

    * Modify access controls of necessary APIs to cater for unregistered instructors

    * Extend front-end access for submission/result pages to unregistered instructors

    * Remove unnecessary studentemail parameter for session submission/result links

    * Remove the now unnecessary join instruction for instructor submission/result reminders

    * Replace instructor submission/result links with generic ones

    * Add course join notes for instructor

    * Include list of session links for regenerate email

    * Display session links for instructor search result

commit c75304d
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sat Feb 5 10:13:27 2022 +0800

    [TEAMMATES#11371] Instructor sample data: defer until instructor joins (TEAMMATES#11396)

    * Defer creation of sample data until after instructor joins

    * Fix deleteAccountRequest

    * Add loading spinner to create-account-page

    * Add check for whether user already has account

    * Update frontend tests

    * Add component tests

    * Add tests for AccountRequestAttributes

    * Add component tests for create account actions

    * Fix frontend lint errors

    * Fix backend lint errors

    * Fix e2e tests

    * Add account requests to data bundle

    * Update account  requests logic test

    * Add e2e Tests

    * Fix page not redirecting to login

    * Fix lint errors

    * Fix linting issues

    * Change id of AccountRequest to use both email and institute

    * Move create account page to user join page

    * Update tests for user-join-page

    * Add delete account request action

    * Delete account request in AdminHomePageE2E test

    * Add GetAccountRequest action

    * Remove unnecessary calls to getAccountRequest

    * Fix failing component tests

    * Use instructorEmail instead of Email const

    * Fix minor bugs and cleanup

    * Remove trailing whitespace

    * Add placeholder skeleton to frontend

    * Update AccountRequest and DTO

    * Move registration url creation to accountRequest dto

    * Update createAccountAction to soft delete

    * Update component tests

    * Add endpoint to get account request status

    * Update user join page

    * Fix indentation

    * Update tests for user-join-page

    * Fix failing component tests

    * Fix typos

    * Fix typo which caused createdAt to be null

    * Fix broken component tests

    * Update exception to use specific exception type

    * Change Instant to Long in AccountRequestData.java

    * Refactor CreateAccountRequestActionTest to use getJoinLink method

    * Fix lint issues

    * Change getAccountRequest to throw exception

    * Remove unnecessary null check

    * Refactor user join page

    * Remove instructor from registration url

    * Remove instructor entity type from tests

    * Update sample data to be more realistic

    * Remove name and registration key update options

    * Fix architecture test violations

    * Seperate craete and update account request

    * Streamline API for join status

    * Minor bug fix

    * Remove account request status constant

    * Refactor get account request methods

    * Simplify condition

    * Fix typo

    * Remove else block

    * Create e2e test for account requests

    * Fix lint issues

    * Fix failing test

    * Remove now unnecessary comment

    * Revert unnecessary change

    * Remove outdated comment

    * Fix minor issues

    * Remove additional word

    * Replace boolean with string

    * Catch error when accountRequestAttributes is null

    * Remove entityType from join link

    * Use invalidKey variable

    * Remove name from update options

    * Handle case where accountRequestAttributes not found with assertions instead

    * Seperate try block in CreateAccountAction.java

    * Handle cases in CreateAccountAction where exceptions should not be thrown

    * Tweak comment language used to be consistent

    * Collapse catch blocks in CreateAccountAction.java

    Co-authored-by: Wilson Kurniawan <wkurniawan.92@gmail.com>

commit 27d3291
Author: Zhao Jingjing <54243224+zhaojj2209@users.noreply.github.com>
Date:   Fri Feb 4 18:53:58 2022 +0800

    [TEAMMATES#11539] Feedback response submission: Requests sent to backend despite invalid response (TEAMMATES#11541)

    * Fix invalid feedback response check

    * Add tests

    Co-authored-by: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>

commit 8ecf764
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Sat Jan 15 17:17:41 2022 +0800

    Fixed navbar and added logo

    Ignore auto generated site

    Add markbind to troubleshooting guide

    Revise via prof Damith comments

commit 4781fa2
Author: Hannah Chia <chia.hannahk@gmail.com>
Date:   Sat Jan 15 16:35:39 2022 +0800

    Add markbind features to e2e testing

commit f21be78
Author: tlylt <liu_yongliang@hotmail.com>
Date:   Sat Jan 15 16:14:13 2022 +0800

    add example reuse and panel

commit 8b4e54e
Author: Jovyn Tan <jovyn.tls@gmail.com>
Date:   Sat Jan 15 16:45:29 2022 +0800

    Fix broken static analysis links

commit 4e0a62e
Author: Jovyn Tan <jovyn.tls@gmail.com>
Date:   Sat Jan 15 16:11:13 2022 +0800

    Add tooltips and boxes

commit e59f2e9
Author: ong6 <junxiongong2@gmail.com>
Date:   Sat Jan 15 15:26:24 2022 +0800

    Finished setting up navbar

commit 7783a47
Author: ong6 <junxiongong2@gmail.com>
Date:   Sat Jan 15 14:54:16 2022 +0800

    Fixed navigation

commit 9de6686
Author: ong6 <junxiongong2@gmail.com>
Date:   Sat Jan 15 14:44:43 2022 +0800

    Fixed navbar

commit 4e8be3a
Author: ong6 <junxiongong2@gmail.com>
Date:   Sat Jan 15 14:41:10 2022 +0800

    Fixed navigation styling

commit 4d210e6
Author: tlylt <liu_yongliang@hotmail.com>
Date:   Sat Jan 15 14:11:21 2022 +0800

    generate site

commit 7dfda8b
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Thu Mar 31 11:11:59 2022 +0800

    [TEAMMATES#11684] Fix minor typos (TEAMMATES#11685)

    * Fix minor typos

    * Remove unnecessary multi-byte characters

commit e1a19ac
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Mar 29 00:21:23 2022 +0800

    [TEAMMATES#11673] Add ESLint rule for member delimiter style (TEAMMATES#11675)

commit fe084aa
Author: Mo Zongran <mozongran@gmail.com>
Date:   Mon Mar 28 23:34:00 2022 +0800

    [TEAMMATES#11585] Fix unnecessary data read in expected submission count (TEAMMATES#11659)

commit b088fd0
Author: Nicolas Chang Weng Yew <nicolas.chang99@gmail.com>
Date:   Mon Mar 28 18:40:42 2022 +0800

    [TEAMMATES#8184] Instructor create session: default questions: replace 'contribution question' (TEAMMATES#11613)

commit bffb533
Author: Howard Liu <howard@ixnet.work>
Date:   Mon Mar 28 15:45:30 2022 +0800

    [TEAMMATES#11621] [TEAMMATES#11622] Minor fixes for angular.json and typos (TEAMMATES#11672)

commit 46f9439
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Mon Mar 28 01:00:54 2022 +0800

    [TEAMMATES#11674] Fix duplicate time picker option when 23:00 selection (TEAMMATES#11677)

commit 2927683
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Sun Mar 27 23:35:57 2022 +0800

    [TEAMMATES#11618] Backend for usage statistics collection (TEAMMATES#11666)

    * Add usage statistics entity + attributes

    * Add API to fetch usage statistics objects

    * Limit statistics query to six months

    * Add cron job action to collect response stats

    * Extend stats collection function to few other entities

    * Extend stats collection function to number of emails sent and submissions

    * Add some tests to non-trivial backend methods

commit 63d20da
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sun Mar 27 22:58:26 2022 +0800

    [TEAMMATES#11655] Devise a better way to handle duplicate account requests (TEAMMATES#11657)

commit 5fd040c
Author: FergusMok <FergusMok1@gmail.com>
Date:   Sun Mar 27 19:54:58 2022 +0800

    [TEAMMATES#11086] Enrolling students: show a progress indicator when enrolling a large class (TEAMMATES#11600)

commit 47a51f8
Author: Mo Zongran <mozongran@gmail.com>
Date:   Tue Mar 22 21:56:47 2022 +0800

    [TEAMMATES#11585] Add key only queries to data count and existential checks (TEAMMATES#11662)

    * fix: change limit 1 to keys only query for existential check

    * update: add method to get the student count in a team in a course

commit 2bdf70c
Author: LI JIANHAN <59337195+jianhandev@users.noreply.github.com>
Date:   Mon Mar 21 00:58:46 2022 +0800

    [TEAMMATES#8011] Improve scalability of student cascade delete (TEAMMATES#11574)

    * Limit number of students to delete per request in backend

    * Update component tests for delete students with limit

    * Break up large delete students request in frontend

    * Add frontend test for students batch delete

    * Enforce typing for CourseStatistics object in test file

    * Show correct toast type

    Co-authored-by: jianhandev <jianhandev@gmail.com>

commit 3824506
Author: Howard Liu <howard@ixnet.work>
Date:   Thu Mar 17 00:13:26 2022 +0800

    [TEAMMATES#11570] Move all external service classes to new package (TEAMMATES#11577)

    * Move all external service classes to new package

    * Update design diagram and documents

    * Update design document and diagram

    * Amend docs based on comments

commit fdfdcf1
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Mon Mar 14 23:28:35 2022 +0800

    [TEAMMATES#11647] Update developers

commit 720ea6d
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Mar 14 22:09:04 2022 +0800

    [TEAMMATES#11640] Apply lazy-loading of question contents in session submission page (TEAMMATES#11642)

    * Load recipients and responses only when in view

    * Add button to submit responses for individual questions

    * Add E2E test for submitting response to one question only

    * Rephrase saving complete modal when there is only one question to reduce ambiguity

commit 96fa122
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Mar 14 21:13:16 2022 +0800

    [TEAMMATES#11644] Remove webmaster/webtool files from source control (TEAMMATES#11645)

    * Add webtools folder with .gitkeep

    * Remove all hardcoded webtool files

commit 39ce954
Author: Howard Liu <howard@ixnet.work>
Date:   Mon Mar 14 20:37:44 2022 +0800

    [TEAMMATES#11547] Remove outdated instructor help information (TEAMMATES#11555)

commit ab1b48c
Author: Mo Zongran <mozongran@gmail.com>
Date:   Sun Mar 13 22:21:50 2022 +0800

    [TEAMMATES#11143] Refactor session link recovery logic (TEAMMATES#11159)

commit 0642966
Author: Mo Zongran <mozongran@gmail.com>
Date:   Sun Mar 13 21:57:10 2022 +0800

    [TEAMMATES#11585] Remove unnecessary data read (TEAMMATES#11646)

commit a3c4ba0
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sat Mar 12 17:01:54 2022 +0800

    [TEAMMATES#11633] Remove overwritten text-break class (TEAMMATES#11634)

commit 29118a3
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Fri Mar 11 21:19:33 2022 +0800

    [TEAMMATES#11433] Admin: Give a way to remove unregistered instructors and their data (TEAMMATES#11582)

    * Add delete account request function in account service

    * Add delete button for account request on admin search page

    * Add backend validation to prevent account request of registered instructor from being deleted

    * Add admin search page e2e tests for deletion of account request

    * Remove redundant hasInstructor attribute

commit acf8bc0
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Fri Mar 11 08:36:42 2022 +0800

    [TEAMMATES#11630] [TEAMMATES#11631] Update conditions for session closing and closed emails (TEAMMATES#11635)

    * Send session closing email to all students/instructors

    * Repurpose session closed email to co-owner only

commit f177a43
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Fri Mar 11 07:23:17 2022 +0800

    [TEAMMATES#11626] New instructors: set the session timestamps of the sample course to match user (TEAMMATES#11627)

    * Use demo.timezone placeholder to indicate string to replace

    * Make sample data session times dynamic

commit 2763068
Author: FergusMok <FergusMok1@gmail.com>
Date:   Fri Mar 11 02:38:26 2022 +0800

    [TEAMMATES#10843] Instructor viewing results: incorrect state shown briefly when expanding the non-submitters panel (TEAMMATES#11595)

commit 9f2f4c7
Author: Howard Liu <howard@ixnet.work>
Date:   Fri Mar 11 02:05:43 2022 +0800

    [TEAMMATES#11588] Fix incorrect loading for student result page (TEAMMATES#11604)

commit 33cfa21
Author: Zhao Jingjing <54243224+zhaojj2209@users.noreply.github.com>
Date:   Thu Mar 10 21:50:19 2022 +0800

    [TEAMMATES#11370] Copying question from another session: optimize fetching of available questions (TEAMMATES#11566)

commit 9cc2e84
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Wed Mar 2 15:14:06 2022 +0800

    [TEAMMATES#11579] [TEAMMATES#11610] Update front page data + remove usermap page (TEAMMATES#11616)

    * Remove usermap-related files

    * Remove topojson library

    * Update committers + senior members list

    * Update developers list

    * Update submission base number

    * Update users number in home page

commit 96c2743
Author: Hardik Ruparel <hardikruparel14@gmail.com>
Date:   Tue Mar 1 21:52:33 2022 -0800

    [TEAMMATES#11598] Outdated link in Solr documentation (TEAMMATES#11601)

commit d31a76d
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Mar 1 00:49:31 2022 +0800

    [TEAMMATES#11591] Use Firefox 96 in E2E tests (TEAMMATES#11611)

commit de1b10c
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Feb 28 15:38:20 2022 +0800

    [TEAMMATES#11345] Update Angular to 12 (TEAMMATES#11509)

commit 45406dc
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Feb 28 14:16:57 2022 +0800

    [TEAMMATES#11607] Update back-end dependencies (TEAMMATES#11608)

    * Update Gradle to 7.4

    * Update lint tools to latest

    * Fix newly flagged lint issues

    * Fix deprecated code usages

    * Fix deprecated java 5-7 practices

    * Copy full implementation of readExternal from time.zone classes

    * Update non-GCP dependencies to latest

    * Update GCP dependencies to latest

commit b89ce39
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Sat Feb 26 11:11:37 2022 +0800

    [TEAMMATES#11599] Update developers

commit 7803395
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sat Feb 26 11:07:39 2022 +0800

    [TEAMMATES#11583] Add account request entity to storage component diagram (TEAMMATES#11584)

commit c805534
Author: Martin Larsson <martin.99.larsson@telia.com>
Date:   Fri Feb 25 05:11:23 2022 +0100

    [TEAMMATES#11592] Wrong argument order in populateFieldsToGenerateInQuestion causes NPE (TEAMMATES#11593)

    * test: add tests for IN_SAME_SECTION

    * fix: correct argument order for getStudentForEmail

commit 49bea44
Author: Nicolas Chang Weng Yew <nicolas.chang99@gmail.com>
Date:   Wed Feb 23 16:46:17 2022 +0800

    [TEAMMATES#11578] Make user cookie time sensitive (TEAMMATES#11581)

    * Add expiration time to cookies

    * Add UserInfo cookie test

    * Remove magic number and change expiry time to long

    * Add validity test

    * Change expiryTime setter to use long parameter

commit f70ae53
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Sun Feb 20 23:55:17 2022 +0800

    [TEAMMATES#11568] Update developers

commit 693d6bf
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Sat Feb 19 22:08:34 2022 +0800

    [TEAMMATES#9152] Add more SpotBugs rules (TEAMMATES#11580)

commit 4ec60a2
Author: Howard Liu <howard@ixnet.work>
Date:   Thu Feb 17 21:31:41 2022 +0800

    [TEAMMATES#11487] Disable mouse wheel events for number inputs (TEAMMATES#11542)

    * Disable mouse wheel events for number inputs

    - Prevent mouse wheel scroll from changing students' number inputs

    * Revert "Disable mouse wheel events for number inputs"

    This reverts commit 9429e87.

    * Disable wheel for numeric inputs using directive

    - New WheelDisablerDirective and respective module is created
    - Updated snapshot for session-submission-page

    * Fix linting errors

commit 288d0ff
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Feb 15 23:58:22 2022 +0800

    [TEAMMATES#11540] Make maintainer logs interface scrollable (TEAMMATES#11545)

    * Allow maintainer logs output to scroll

    * Enlarge scrollable area

    * Replace css selectors with nested sass selectors

commit f88ba0c
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Tue Feb 15 22:35:57 2022 +0800

    [TEAMMATES#11559] Include session submission/results URL for instructor in instructor-addressed emails (TEAMMATES#11561)

commit 00d2adf
Author: Howard Liu <howard@ixnet.work>
Date:   Tue Feb 15 21:51:19 2022 +0800

    [TEAMMATES#11551] Fix incorrect message for student home page (TEAMMATES#11563)

commit f347d66
Author: Jay Ting <65202977+jayasting98@users.noreply.github.com>
Date:   Tue Feb 15 21:21:21 2022 +0800

    [TEAMMATES#11548] Add edit functionality for admins adding new instructors (TEAMMATES#11549)

commit 8d64ee9
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Tue Feb 15 11:31:32 2022 +0800

    [TEAMMATES#9031] Allow adding of comment to MSQ questions (TEAMMATES#11546)

    * Allow adding of comment to MSQ questions

    * Fix typo in session-submission-page test

    * Fix some comments appearing in wrong column in downloaded csv file

    * Remove impossible test

commit 0da0e52
Author: Nicolas Chang Weng Yew <nicolas.chang99@gmail.com>
Date:   Tue Feb 15 10:37:45 2022 +0800

    [TEAMMATES#11466] Add remind sub-menu to UI (TEAMMATES#11510)

    * Add remind sub-menu to UI

    * Add logic to reminder button modal

    * Update snapshots tests for reminder sub-menu

    * Fix bug that incorrectly selects modal option

    Selecting "Select all non-submitters" checks the modal option "Select
    all instructors not yet submitted" and "Select all students not yet
    submitted" in modal even when all instructors or students have completed
    the have completed the feedback session.

    Change isAllYetToSubmitInstructorsSelected and
    isAllYetToSubmitStudentsSelected functions to check that there exist
    entities who have not completed the form before checking option.

    * Style remind button

    * Update snapshot tests

    * Fix lint errors

    * Change button group to use bootstrap flex class

    * Add back loading condition

    * Update send reminder email E2E test

    * Update snapshot tests

    * Fix typo in E2E tests

    * Make E2E helper function name more descriptive

    * Add E2E to InstructorFeedbackSession

    * Remove unused event emitter

    Update snapshot tests

    * Add E2E test to InstructorFeedbackSession

    Add E2E test to test remind all non-submitters button and ensure that sent to student non-submitters.

    * Fix typo in E2E test

    * Removed tests for more than one student

    Students with the same email are not persisted in the database.
    The tests added therefore did not work but passed.

    * Fix lint error

    Co-authored-by: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>

commit 39fba77
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sun Feb 13 16:47:27 2022 +0800

    [TEAMMATES#8787] New instructors: set the time zone of the sample course to match user (TEAMMATES#11557)

commit 6454c30
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sun Feb 13 15:44:20 2022 +0800

    [TEAMMATES#11553] Make account requests searchable in admin search page (TEAMMATES#11560)

commit bb36f4a
Author: FergusMok <FergusMok1@gmail.com>
Date:   Sat Feb 12 18:36:31 2022 +0800

    [TEAMMATES#11152] Student update profile: profile image does not display correctly when certain formats are used  (TEAMMATES#11550)

    * Add validation for student profile picture file types

    * Add more user-friendly notice message

    * Change validProfileFileTypes to readonly

    * Fix linting problems

commit 0e1c1a0
Author: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
Date:   Mon Feb 7 11:17:03 2022 +0800

    [TEAMMATES#11554] Update developers

commit 73de639
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Mon Feb 7 10:50:26 2022 +0800

    [TEAMMATES#11537] Fix unstable E2E tests (TEAMMATES#11558)

    * Add wait for page load

    * Capture elements on demand

    * Use value of timeout from test properties

commit 4767707
Author: Wilson Kurniawan <wkurniawan.92@gmail.com>
Date:   Sun Feb 6 23:23:45 2022 +0800

    [TEAMMATES#11357] Allow access to submission/results page for unregistered instructors (TEAMMATES#11488)

    * Modify access controls of necessary APIs to cater for unregistered instructors

    * Extend front-end access for submission/result pages to unregistered instructors

    * Remove unnecessary studentemail parameter for session submission/result links

    * Remove the now unnecessary join instruction for instructor submission/result reminders

    * Replace instructor submission/result links with generic ones

    * Add course join notes for instructor

    * Include list of session links for regenerate email

    * Display session links for instructor search result

commit 30ac04e
Author: Samuel Fang <samuelfangjw@gmail.com>
Date:   Sat Feb 5 10:13:27 2022 +0800

    [TEAMMATES#11371] Instructor sample data: defer until instructor joins (TEAMMATES#11396)

    * Defer creation of sample data until after instructor joins

    * Fix deleteAccountRequest

    * Add loading spinner to create-account-page

    * Add check for whether user already has account

    * Update frontend tests

    * Add component tests

    * Add tests for AccountRequestAttributes

    * Add component tests for create account actions

    * Fix frontend lint errors

    * Fix backend lint errors

    * Fix e2e tests

    * Add account requests to data bundle

    * Update account  requests logic test

    * Add e2e Tests

    * Fix page not redirecting to login

    * Fix lint errors

    * Fix linting issues

    * Change id of AccountRequest to use both email and institute

    * Move create account page to user join page

    * Update tests for user-join-page

    * Add delete account request action

    * Delete account request in AdminHomePageE2E test

    * Add GetAccountRequest action

    * Remove unnecessary calls to getAccountRequest

    * Fix failing component tests

    * Use instructorEmail instead of Email const

    * Fix minor bugs and cleanup

    * Remove trailing whitespace

    * Add placeholder skeleton to frontend

    * Update AccountRequest and DTO

    * Move registration url creation to accountRequest dto

    * Update createAccountAction to soft delete

    * Update component tests

    * Add endpoint to get account request status

    * Update user join page

    * Fix indentation

    * Update tests for user-join-page

    * Fix failing component tests

    * Fix typos

    * Fix typo which caused createdAt to be null

    * Fix broken component tests

    * Update exception to use specific exception type

    * Change Instant to Long in AccountRequestData.java

    * Refactor CreateAccountRequestActionTest to use getJoinLink method

    * Fix lint issues

    * Change getAccountRequest to throw exception

    * Remove unnecessary null check

    * Refactor user join page

    * Remove instructor from registration url

    * Remove instructor entity type from tests

    * Update sample data to be more realistic

    * Remove name and registration key update options

    * Fix architecture test violations

    * Seperate craete and update account request

    * Streamline API for join status

    * Minor bug fix

    * Remove account request status constant

    * Refactor get account request methods

    * Simplify condition

    * Fix typo

    * Remove else block

    * Create e2e test for account requests

    * Fix lint issues

    * Fix failing test

    * Remove now unnecessary comment

    * Revert unnecessary change

    * Remove outdated comment

    * Fix minor issues

    * Remove additional word

    * Replace boolean with string

    * Catch error when accountRequestAttributes is null

    * Remove entityType from join link

    * Use invalidKey variable

    * Remove name from update options

    * Handle case where accountRequestAttributes not found with assertions instead

    * Seperate try block in CreateAccountAction.java

    * Handle cases in CreateAccountAction where exceptions should not be thrown

    * Tweak comment language used to be consistent

    * Collapse catch blocks in CreateAccountAction.java

    Co-authored-by: Wilson Kurniawan <wkurniawan.92@gmail.com>

commit 86e2fba
Author: Zhao Jingjing <54243224+zhaojj2209@users.noreply.github.com>
Date:   Fri Feb 4 18:53:58 2022 +0800

    [TEAMMATES#11539] Feedback response submission: Requests sent to backend despite invalid response (TEAMMATES#11541)

    * Fix invalid feedback response check

    * Add tests

    Co-authored-by: Ahmed Bahajjaj <42177597+madanalogy@users.noreply.github.com>
@NicolasCwy NicolasCwy deleted the 11466-sub-menu-remind-feature branch January 22, 2024 05:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c.Feature User-facing feature; can be new feature or enhancement to existing feature s.ToMerge The PR is approved by all reviewers including final reviewer; ready for merging
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add a sub-menu for the 'Remind' feature
6 participants