119 Commits

Author SHA1 Message Date
17dd8b1267 Change syntax for routes with filename
Previously, the filename was URL-encoded, thus each / was replaced with %2F. This caused issues with some Apache2 configuration, smartly mingling with the URL to either encode it a second time (resulting in %252F) or decoding it (generating a real /). However, for authenticated file downloads with the JWT, we hardly require a byte-by-byte matching. With these changes, the URL parameter is no longer URL-encoded, so that Apache2 won't break our implementation any longer.

Further, we use this opportunity to get rid of the unnecessary .json extension for those filename routes, simplifying the routes generated and doing some further cleanup.
2024-01-19 11:06:40 +01:00
ae75d1ea3a Disable sub-access to exercises from external user 2023-12-05 21:02:10 +01:00
e9f099d59f Properly nest UserExerciseFeedback
Fixes CODEOCEAN-108
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
bbee854002 Allow RfC index action for exercises to be nested 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
26552a0682 Remove PairProgrammingExerciseFeedback
* Remove view, controller, routes & policy for PairProgrammingExerciseFeedback
* Keep model & database table
2023-10-22 12:07:41 +02:00
4b90a2a3c5 Add exercise feedback page for pair programming study 2023-09-05 22:56:51 +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
28a4b672f9 Remove legacy save search endpoint 2023-07-28 13:18:39 +02:00
574e99eddd Fix rubocop offenses - Requires Ruby 3.1+ 2022-11-25 11:10:06 +01:00
58548555a5 Shell: Add file system browser to retrieve arbitrary files 2022-10-29 18:49:18 +02:00
60078701f5 Editor: Allow file retrieval after code run 2022-10-29 18:49:18 +02:00
dd1f4b0ac8 Merge pull request #939 from openHPI/refactor_proforma_import_export
Refactor Proforma Import/Export
2022-10-26 17:58:48 +02:00
b3d8d82a3c Fix file regex in routes, once again.
* We take everything after the well-known path as a filename, and hence allow everything.
2022-10-04 16:07:00 +02:00
9dbe5ae8aa Allow space in filename 2022-09-26 17:52:20 +02:00
4e2dbae2da Allow dash (-) in file names 2022-09-25 01:12:10 +02:00
b866221353 rename route 2022-09-24 21:08:18 +02:00
16c00ec136 Add support for signed URLs used by the render_file function 2022-09-23 21:35:22 +02:00
ac3dc8d30f Allow platform admins and internal users to switch their current study group 2022-09-22 19:24:26 +02:00
0a16f589e9 Use X-Sendfile to transmit native files and handle file uploads 2022-09-06 01:21:40 +02:00
2141fdb1ac Refactor external_user_statistics to own controller action 2022-07-22 13:19:22 +02:00
9a0f26a84f Allow admins and teachers to remove explicit RfC text 2022-04-28 15:31:58 +02:00
0c1a10959c Use file name with file path as identifier 2021-12-15 00:52:31 +01:00
8535cd9a9c Add option to sync single execution environment 2021-12-09 16:44:05 +01:00
da4e10b990 Add CommunitySolution
* Also slightly refactor some JS files
2021-11-23 01:38:31 +01:00
3ad4890ad4 Use JSON as default for remote evaluation 2021-11-08 10:14:49 +01:00
30603cb7ab Generalize method and constant names for runner management 2021-11-01 17:12:53 +01:00
598de3bcff Add button to synchronize all execution environments
This adds a button to the execution environment index page that, when
clicked, causes all execution environments to be synchronized to the
runner management (Poseidon) by creating or replacing them.

CodeOcean does not synchronize it's execution environments on startup or
when a new runner management configuration is used for the first time.
The administrator has to manually start this process by pressing this
button.

The equivalent for syncing just one execution environment is updating
it.
2021-11-01 17:12:49 +01:00
bb4b4ece92 Add ping/pong health check 2021-10-09 23:37:31 +02:00
da0a682ffb Apply manual rubocop fixes 2021-05-14 22:03:06 +02:00
1e5a9b0825 Remove unused SubmissionsController#stop action 2021-04-07 17:45:38 +02:00
40d83dbb1d Fix access to exercise-specific RfC listing 2021-04-07 14:06:32 +02:00
79c1532742 clean up rails_admin configuration 2020-11-26 17:20:28 +01:00
f98de3b66b Add Rails admin 2020-11-26 17:11:18 +01:00
993fb88f03 Enable submit via API client 2020-11-25 20:47:28 +01:00
4d5e00fde5 Require authorization for RfCs and remove obsolete routes 2020-10-28 13:24:44 +01:00
9ddeb91c41 Remove leftovers from PR #117; exercise feedback on RfC show 2020-10-20 12:15:45 +02:00
e550828c58 Add backend for tips and enable markdown support 2020-10-14 14:34:26 +02:00
baf1ac06da Allow inspection of containers and all_containers variables 2020-03-23 13:38:50 +01:00
4a77536c5f merge master 2019-12-03 17:55:58 +01:00
ab96fb92c2 Add Request for Comments view per exercise, adopt policies for teachers 2019-11-29 15:28:06 +01:00
8767b183cf rename action, translation fixes 2019-10-22 18:41:06 +02:00
9512fe4a79 add check_uuid_url to codeharbor_link 2019-10-20 16:20:04 +02:00
7e7be4721a wip multi-step export 2019-10-20 11:02:57 +02:00
4ab78c170e add uuid check 2019-10-16 19:19:28 +02:00
49d438cef8 add endpoint to check for exercise uuid 2019-09-24 18:43:38 +02:00
3c65565b8c enable export to codeharbor 2019-09-02 19:03:50 +02:00
8c306669af codeharbor_links editable through own profile 2019-08-27 18:33:21 +02:00
ec48d1f447 readding codeharbor_link views and actions 2019-08-26 19:06:52 +02:00