-
Notifications
You must be signed in to change notification settings - Fork 344
Development
: Add server functionality for simple exam seat distribution
#11378
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
base: develop
Are you sure you want to change the base?
Development
: Add server functionality for simple exam seat distribution
#11378
Conversation
…gatable to without explicit URL
… transient fields to ExamUser
…e exam_user table
…es/ways to reference one
… needs to be an AbstractAuditingEntity, still need to figure out what to do with capacity and if I even need it but might store capacity with the layouts directly
…l need to return a DTO, still need helper functions
… code cleaned up, returns DTO now
…exam_user, various code cleanups
…unctionality for deletion of the DB
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reapprove
Oh wow, I never noticed that. Good catch. Yeah, I'll definitely fix that, however it doesn't really belong to this PR, as it did to #11111 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested on TS3, also code 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
code lgtm, just one question
src/main/java/de/tum/cit/aet/artemis/exam/web/admin/AdminExamResource.java
Outdated
Show resolved
Hide resolved
1672f55
End-to-End (E2E) Test Results Summary
|
End-to-End (E2E) Test Results Summary
|
End-to-End (E2E) Test Results Summary
|
Checklist
General
Server
Client
Motivation and Context
Right now we have an exam room management page where we can upload exam rooms, but we can't yet assign them to actual exams, but of course we need to do that to actually integrate them with the exams.
Description
This PR adds a POST endpoint for
/api/exam/courses/{courseId}/exams/{examId}/distribute-registered-students
to automatically distribute students over a selection of rooms.For now it can only distribute via the
default
layout strategy.It also adds an ID display for the exam rooms in the admin exam room overview. Reasons for that addition are that it's something that will very likely be needed in the future anyway to further inspect single rooms, but also because it makes testing this PR so much easier. The default capacity was added partly for the latter reason, and also because it's just interesting, probably even more interesting than the max capacity that was already displayed.
I also had to adapt some tests because as it turned out some of the rooms in the current real tumexam dataset have syntactical mistakes in some fixed layouts and I can't fix them (yet).
Steps for Testing
Prerequisites:
artemis_test_user_200
and onwards to your exam. I would recommend adding them manually; trying to automate this just takes longer, I tried), or alternatively I have set up such an exam in my test course on TS3 with 40 registered studentsauthenticate
request, and check the Response){test-server}/api/exam/courses/{courseId}/exams/{examId}/distribute-registered-students
. You can see thecourseId
andexamId
in the URL bar after you've completed stepBody
tab, click onraw
andJSON
, and type in[ <room-id1>, <room-id2>, ... ]
, where the room-ids are the ids of those rooms you want to select for distribution to. For example it could look like so (after you've hitSend
):Room
andSeat
page on the "Student Management" page from step 2Steps for Re-Testing
If you're retesting this, you can simply check that the "Delete all rooms" button on the admin's exam room management page was removed, which means it's currently no longer possible to quickly erase the room assignments in the student overview. The only way to do that now is to remove and re-add the students to the course.
Testserver States
You can manage test servers using Helios. Check environment statuses in the environment list. To deploy to a test server, go to the CI/CD page, find your PR or branch, and trigger the deployment.
Review Progress
Code Review
Manual Tests
Test Coverage
Client
Server
Screenshots
The red encircled things are new:

This is the room and seat fields on the student exams management page I was talking about:

Summary by CodeRabbit
New Features
UI Changes
Documentation