Commit Graph

28 Commits

Author SHA1 Message Date
fe26378387 Extract ScoringChecks and rework RemoteEvaluations 2023-11-23 14:42:10 +01:00
175c8933f3 Automatically submit LTI grade on each score run
With this commit, we refactor the overall score handling of CodeOcean. Previously, "Score" and "Submit" were two distinct actions, requiring users to confirm the LTI transmission of their score (after assessing their submission). This yielded many questions and was unnecessary, since LTI parameters are no longer expiring after each use. Therefore, we can now transmit the current grade on each score run with the very same LTI parameters. As a consequence, the LTI consumer gets a more detailed history of the scores, enabling further analytical insights.

For users, the previous "Submit" button got replaced with a notification that is shown as soon as the full score got reached. Then, learners can decide to "finalize" their work on the given exercise, which will initiate a redirect to a follow-up action (as defined in the RedirectBehavior). This RedirectBehavior has also been unified and simplified for better readability.

As part of this refactoring, we rephrased the notifications and UX workflow of a) the LTI transmission, b) the finalization of an exercise (measured by reaching the full score) and c) the deadline handling (on time, within grace period, too late). Those information are now separately shown, potentially resulting in multiple notifications. As a side effect, they are much better maintainable, and the LTI transmission is more decoupled from this notification handling.
2023-11-23 14:42:10 +01:00
8fc5123bae Exclusively lock Runners during code executions
Previously, the same runner could be used multiple times with different submissions simultaneously. This, however, yielded errors, for example when one submission time oud (causing the running to be deleted) while another submission was still executed.

Admin actions, such as the shell, can be still executed regardless of any other code execution.

Fixes CODEOCEAN-HG
Fixes openHPI/poseidon#423
2023-10-31 12:35:24 +01:00
be4f2b790d Add user to testrun
* We want to identify a user that has triggered a testrun. Previously (in regular operation), only submission author who were regular users were able to start a testrun. Now, we want to prepare a future where submission authors are programming groups. Still, a testrun is triggered by an individual user and not a group.
* Further, this commit fixes some missing foreign key constrains.
2023-08-24 19:32:06 +02:00
e3603758ef Refactor LTI parameters and add study group
* This change also requires that submissions in our test need to have a valid study group.
2023-08-24 19:32:06 +02:00
e2baa2ee55 Send score for all members of a programming group 2023-08-24 19:32:06 +02:00
319c3ab3b4 Add ProgrammingGroup & ProgrammingGroupMembership
* User can create programming group with other users for exercise
* Submission is shared in a group
* Also adjust specs
2023-08-24 19:32:06 +02:00
0aa73d30e9 Reduce SQL queries for querying files when creating submissions
This is especially useful for the RemoteEvaluationsController.

Closes CODEOCEAN-KX
2023-04-02 17:05:22 +02:00
af843231d9 Add user details to RemoteEvaluationsController 2023-02-21 10:45:00 +01:00
fcc6d69982 Fix percentage value display for remote score 2023-01-12 18:50:50 +01:00
574e99eddd Fix rubocop offenses - Requires Ruby 3.1+ 2022-11-25 11:10:06 +01:00
ee8e76af07 Remote Submit: Add remark to check submission deadline 2022-06-08 16:49:43 +02:00
d033f71ae3 Catch Runner::Error in RemoteEvaluationController 2021-11-04 18:43:16 +01:00
5cc180d0e9 Fix rubocop, I18n, cleanup rebase 2021-11-01 17:12:52 +01:00
b6bc578aea Move submission scoring from controller concern to submission model
Localization and markdown formatting is now done in a controller
spec in order to bring this logic away from the data and towards
the view.
2021-11-01 17:12:50 +01:00
cf58be97ee Fix 17 previously failing specs 2021-11-01 17:12:49 +01:00
6cbecb5b39 Apply automatic rubocop fixes 2021-05-14 22:03:06 +02:00
3c7e9176a2 Daily Rubocop 2021-04-30 12:06:13 +02:00
4958f5b9a9 Add StudyGroup to RemoteEvaluationMapping 2021-04-30 12:06:12 +02:00
36cacc2330 Pass exercise object instead of id to reject_illegal_file_attributes 2021-04-30 12:06:11 +02:00
b3c110cead Improve code style 👮 2021-04-30 12:06:11 +02:00
1f3c9db537 Reject illegal file attributes in remote evaluation
Remove ! from reject illegal file parameters
2021-04-30 12:06:09 +02:00
a7869ff401 Fix display of submitted score for remoteSubmit 2020-11-27 19:09:45 +01:00
a60510c97f Add transmitted score to remoteSubmit 2020-11-27 12:26:12 +01:00
c32e7586cd Remove consumer_id from session
* Each external (and also internal) user has a consumer attached. We don't need that information twice.
2020-11-25 21:19:18 +01:00
993fb88f03 Enable submit via API client 2020-11-25 20:47:28 +01:00
1131d08e2b Add user_type to RemoteEvaluationMappings 2018-11-26 17:56:07 +01:00
3562aa9103 create remote evaluation 2017-02-02 18:14:33 +01:00