Commit Graph

2472 Commits

Author SHA1 Message Date
b43dfa364e Improve LTI handling for InternalUsers 2023-11-23 14:42:10 +01:00
3b05a44b9e Allow programming groups to score exercises remotely 2023-11-23 14:42:10 +01:00
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
1e06ab3fa9 Prevent cross access of PG for different exercise
Here, we are only checking the condition based on the URL if both parameters (exercise and programming group) are given. Otherwise, we skip the check.
2023-11-23 14:42:10 +01:00
3048cf2644 Remove unnecessary #to_s in controller 2023-11-23 14:42:10 +01:00
ee351198f5 Fix CommunitySolution after introduction of programming pairs 2023-11-23 14:42:10 +01:00
9b705fd538 Remove erroneous validation from CommunitySolution 2023-11-23 14:42:10 +01:00
ed7a3c848f Hide reference implementations if another file with same name is already present 2023-11-20 23:16:48 +01:00
c9ed9bd0cf Fix batch update for exercises
This fixes a regression from 8a055a0d
2023-11-20 22:33:58 +01:00
aeb2bb2542 Hide button to sync execution environments from unauthorized users 2023-11-20 22:25:28 +01:00
e03e67a1a5 Only return height and width for Turtle if canvas is present
Fixes CODEOCEAN-FRONTEND-4P
2023-11-17 14:59:49 +01:00
3d5f55f8ed Only apply Turtle update if canvas is present
Fixes CODEOCEAN-FRONTEND-4T
2023-11-17 14:59:49 +01:00
ce6470cd72 Carefully check for tooltip in Run-Stop button group
Fixes CODEOCEAN-FRONTEND-5C
2023-11-17 14:59:49 +01:00
c18aadaf61 Don't throw an exception without turtle canvas
Fixes CODEOCEAN-FRONTEND-59
2023-11-17 14:59:49 +01:00
35a65e4744 Check for element before attempting to show spinner
Fixes CODEOCEAN-FRONTEND-57
2023-11-17 14:59:49 +01:00
1e08f2cc9c add hidden_feedback to custom CodeOcean test-attributes 2023-11-17 00:56:49 +01:00
122580b220 ProFormA: refactor filename-gather-method
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com>
2023-11-17 00:56:49 +01:00
3f8f4cee5b update converters and im-/exporters to accommodate for changes in proforma gem 2023-11-17 00:56:49 +01:00
7026f14725 Fix download behavior for hidden file tree
This commit fixes a regression from 944b4551, where the behavior was changed by mistake.
2023-11-11 20:31:01 +01:00
8c1cede705 Hide action name for Index and Show routes 2023-11-09 09:15:39 +01:00
cf5d7ffd1f Revert "Log terminated_by_client to Sentry"
This reverts commits 3ad94653 and c6461f6b
2023-11-06 00:29:25 +01:00
4537f2bf75 Allow viewing submissions without corresponding exercise
Fixes CODEOCEAN-S7
2023-11-06 00:24:51 +01:00
920f2dcb38 Handle broken pipe socket in SubmissionsController
Fixes CODEOCEAN-Y2
2023-11-06 00:16:53 +01:00
2872c04934 Fix exception for WebSocket connection without cookie
Fixes CODEOCEAN-YW
2023-11-05 23:57:24 +01:00
d2b2deaf98 Use var for window-wide variables
Otherwise, Turbolinks might cause an issue...

Fixes CODEOCEAN-FRONTEND-H
2023-11-05 23:43:32 +01:00
abf917ae37 Switch to Hash syntax for URL generation in breadcrumbs
This will prevent an exception if the corresponding Route cannot be generated.
2023-11-05 13:02:34 +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
442337a22b Fix file listing and download for admin shell
`node.parents` is not returning the parent nodes in a fixed order. Hence, we cannot use it but must travers the tree ourselves.
2023-10-31 00:39:06 +01:00
6ba567a903 Add role checks for ProgrammingGroup
So far, a programming group is always considered to be a learner. While we could, technically, consider it to be a teacher or an admin if all members have this role, this behaviour might have unintended side effects.
2023-10-31 00:39:06 +01:00
28d9e38fe5 Upgrade to Rails 7.1 and apply new framework defaults
* Remove deprecated options from environments
* Remove deprecation warnings for upcoming Rails 7.2
* Dump schema with new defaults
* Remove outdated (and erroneous) data attribute in view
* Resolve a `NoMethodError` for seeds_spec.rb
2023-10-27 16:50:27 +02:00
bbee854002 Allow RfC index action for exercises to be nested 2023-10-23 18:17:42 +02:00
5ecde8c8bd Generalize breadcrumbs for nested resources
* Make programming groups breadcrumb navigation clickable
2023-10-23 18:17:42 +02:00
bf8f7b471c Keep existing programming group memberships during update 2023-10-23 18:17:42 +02:00
79ce069f68 Add CRUD operations for Programming Groups
* Correct sorting in table
* Modify page when nested in exercises
* Fix links between pages
* Link from statistics page to programming_groups/index
* Link from submission page to programming_groups/<id>
* Allow filtering for exercise ID on ProgrammingGroup#index
* Add search fields for internal and external user id on pg/index
2023-10-23 18:17:42 +02:00
f1ca5da44d Customize to_s method for feedback 2023-10-22 12:07:41 +02:00
e91b2ede7d Prevent an exception if score cannot be sent for survey 2023-10-22 12:07:41 +02:00
f7e3979e79 Set bonus points for survey via LTI parameter 2023-10-22 12:07:41 +02:00
b91a2b7ce0 Remove PairProgramming23Study and instead use LTI parameter 2023-10-22 12:07:41 +02:00
5bbc94f1d1 Remove info about study & link to feedback page 2023-10-22 12:07:41 +02:00
26552a0682 Remove PairProgrammingExerciseFeedback
* Remove view, controller, routes & policy for PairProgrammingExerciseFeedback
* Keep model & database table
2023-10-22 12:07:41 +02:00
67f19516c3 Add internal title for exercise
The internal title is designed to provide an alternative title for teachers. It is not exposed to learners.
2023-10-14 00:30:32 +02:00
7af648a966 Specify ANIMATION_DURATION as const 2023-10-13 00:14:19 +02:00
99bd46af1a Align project files with CodeHarbor
Since both projects are developed together and by the same team, we also want to have the same code structure and utility methods available in both projects. Therefore, this commit changes many files, but without a functional change.
2023-10-11 00:18:33 +02:00
6b5aa853ee Fix comment for i18n-js import 2023-10-03 11:52:56 +02:00
e7e8798f8e Disable sorttable on Ransack-sorted columns 2023-10-03 11:31:31 +02:00
052367c186 Allow fixing validation errors for Study Group update 2023-10-02 17:39:01 +02:00
dbca2c0fd8 Improve study_group_params to disallow ID and reformat 2023-10-02 17:35:54 +02:00
c6e7562f72 Disallow matched users to wait for a Programming Group
Fixes CODEOCEAN-YE
2023-09-30 18:56:19 +02:00
2f97c0357c Properly reject invalid ActionCable subscriptions
Previously, we were not properly rejecting the submission, so that the channel name was still evaluated (leading to errors). Now, we handle these cases as well.

Fixes CODEOCEAN-V2
2023-09-30 18:56:19 +02:00