Commit Graph

119 Commits

Author SHA1 Message Date
Sebastian Serth
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
Sebastian Serth
ae75d1ea3a Disable sub-access to exercises from external user 2023-12-05 21:02:10 +01:00
Sebastian Serth
e9f099d59f Properly nest UserExerciseFeedback
Fixes CODEOCEAN-108
2023-11-23 14:42:10 +01:00
kiragrammel
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
Sebastian Serth
bbee854002 Allow RfC index action for exercises to be nested 2023-10-23 18:17:42 +02:00
kiragrammel
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
kiragrammel
26552a0682 Remove PairProgrammingExerciseFeedback
* Remove view, controller, routes & policy for PairProgrammingExerciseFeedback
* Keep model & database table
2023-10-22 12:07:41 +02:00
kiragrammel
4b90a2a3c5 Add exercise feedback page for pair programming study 2023-09-05 22:56:51 +02:00
kiragrammel
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
Sebastian Serth
28a4b672f9 Remove legacy save search endpoint 2023-07-28 13:18:39 +02:00
Sebastian Serth
574e99eddd Fix rubocop offenses - Requires Ruby 3.1+ 2022-11-25 11:10:06 +01:00
Sebastian Serth
58548555a5 Shell: Add file system browser to retrieve arbitrary files 2022-10-29 18:49:18 +02:00
Sebastian Serth
60078701f5 Editor: Allow file retrieval after code run 2022-10-29 18:49:18 +02:00
Sebastian Serth
dd1f4b0ac8 Merge pull request #939 from openHPI/refactor_proforma_import_export
Refactor Proforma Import/Export
2022-10-26 17:58:48 +02:00
Sebastian Serth
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
Sebastian Serth
9dbe5ae8aa Allow space in filename 2022-09-26 17:52:20 +02:00
Sebastian Serth
4e2dbae2da Allow dash (-) in file names 2022-09-25 01:12:10 +02:00
Karol
b866221353 rename route 2022-09-24 21:08:18 +02:00
Sebastian Serth
16c00ec136 Add support for signed URLs used by the render_file function 2022-09-23 21:35:22 +02:00
Sebastian Serth
ac3dc8d30f Allow platform admins and internal users to switch their current study group 2022-09-22 19:24:26 +02:00
Sebastian Serth
0a16f589e9 Use X-Sendfile to transmit native files and handle file uploads 2022-09-06 01:21:40 +02:00
Sebastian Serth
2141fdb1ac Refactor external_user_statistics to own controller action 2022-07-22 13:19:22 +02:00
Sebastian Serth
9a0f26a84f Allow admins and teachers to remove explicit RfC text 2022-04-28 15:31:58 +02:00
Sebastian Serth
0c1a10959c Use file name with file path as identifier 2021-12-15 00:52:31 +01:00
Sebastian Serth
8535cd9a9c Add option to sync single execution environment 2021-12-09 16:44:05 +01:00
Sebastian Serth
da4e10b990 Add CommunitySolution
* Also slightly refactor some JS files
2021-11-23 01:38:31 +01:00
Sebastian Serth
3ad4890ad4 Use JSON as default for remote evaluation 2021-11-08 10:14:49 +01:00
Sebastian Serth
30603cb7ab Generalize method and constant names for runner management 2021-11-01 17:12:53 +01:00
Konrad Hanff
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
Sebastian Serth
bb4b4ece92 Add ping/pong health check 2021-10-09 23:37:31 +02:00
Sebastian Serth
da0a682ffb Apply manual rubocop fixes 2021-05-14 22:03:06 +02:00
Sebastian Serth
1e5a9b0825 Remove unused SubmissionsController#stop action 2021-04-07 17:45:38 +02:00
Tobias Kantusch
40d83dbb1d Fix access to exercise-specific RfC listing 2021-04-07 14:06:32 +02:00
Karol
79c1532742 clean up rails_admin configuration 2020-11-26 17:20:28 +01:00
Karol
f98de3b66b Add Rails admin 2020-11-26 17:11:18 +01:00
Sebastian Serth
993fb88f03 Enable submit via API client 2020-11-25 20:47:28 +01:00
Sebastian Serth
4d5e00fde5 Require authorization for RfCs and remove obsolete routes 2020-10-28 13:24:44 +01:00
Sebastian Serth
9ddeb91c41 Remove leftovers from PR #117; exercise feedback on RfC show 2020-10-20 12:15:45 +02:00
Sebastian Serth
e550828c58 Add backend for tips and enable markdown support 2020-10-14 14:34:26 +02:00
Sebastian Serth
baf1ac06da Allow inspection of containers and all_containers variables 2020-03-23 13:38:50 +01:00
Karol
4a77536c5f merge master 2019-12-03 17:55:58 +01:00
Sebastian Serth
ab96fb92c2 Add Request for Comments view per exercise, adopt policies for teachers 2019-11-29 15:28:06 +01:00
Karol
8767b183cf rename action, translation fixes 2019-10-22 18:41:06 +02:00
Karol
9512fe4a79 add check_uuid_url to codeharbor_link 2019-10-20 16:20:04 +02:00
Karol
7e7be4721a wip multi-step export 2019-10-20 11:02:57 +02:00
Karol
4ab78c170e add uuid check 2019-10-16 19:19:28 +02:00
Karol
49d438cef8 add endpoint to check for exercise uuid 2019-09-24 18:43:38 +02:00
Karol
3c65565b8c enable export to codeharbor 2019-09-02 19:03:50 +02:00
Karol
8c306669af codeharbor_links editable through own profile 2019-08-27 18:33:21 +02:00
Karol
ec48d1f447 readding codeharbor_link views and actions 2019-08-26 19:06:52 +02:00