Commit Graph

744 Commits

Author SHA1 Message Date
96f5f1f8d7 Enforce valid lis_outcome_service_url
Recently, a new institution joined CodeOcean and used a relative URL. This won't work, so that we are rejecting non-absolute URLs by now.
2024-04-26 10:21:53 +02:00
7cc4fb00c6 RfCs: Allow filtering for any states
We want to differentiate between those RfCs explicitly marked as solved, those potentially solved since the author reached the maximum score, and those being unsolved where the author has not yet reached the full score yet.
2024-04-24 12:18:47 +02:00
a6f252b9da Shakapacker Dev: Use no-store to prevent caching at all 2024-04-05 16:00:35 +02:00
7d3dd4d024 Bump webpack-dev-server from 4.15.1 to 5.0.1
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.15.1 to 5.0.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.15.1...v5.0.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-19 13:59:10 +01:00
790186a1a1 Resolve Tubesock deprecation warnings 2024-02-26 14:34:42 +01:00
7a1330323c Fix Sorcery conflict for redirect_back_or_to
See https://github.com/Sorcery/sorcery/issues/296
2024-01-19 11:06:40 +01:00
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
f0c34bab5a Keep trailing whitespaces in Ransack searches 2024-01-16 21:31:48 +01:00
dd6b25088a German: Use gender-neutral language for roles 2023-12-08 20:28:51 +01:00
ef89b20986 Improve explanation for hidden feedback messages in tests 2023-12-08 20:25:02 +01:00
ae75d1ea3a Disable sub-access to exercises from external user 2023-12-05 21:02:10 +01:00
5ddc5a8ca5 Redirect users after sign in to their desired page 2023-12-01 00:06:31 +01:00
68a0ae3248 Remove temporary monkey patch for Mnemosyne 2023-11-28 18:13:31 +01:00
1fb5e45202 Monkey Patch Mnemosyne until Rails 7.1 support landed
See https://github.com/mnemosyne-mon/mnemosyne-ruby/pull/70
2023-11-24 16:28:53 +01:00
e9f099d59f Properly nest UserExerciseFeedback
Fixes CODEOCEAN-108
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
f733ee580a Shakapacker: Additionally watch the generated locales 2023-11-23 14:42:10 +01:00
4e3b66ff76 Remove monkey patch for Slim with Rails 7.1 2023-11-11 20:43:52 +01:00
87908c7bd1 Switch to actioncable-enhanced-postgresql-adapter
This change will store large events (larger than 8KB) for ActionCable in the database. Therefore, it resolves issues where the payload was previously too large.

Fixes #1920
Fixes CODEOCEAN-Y8
Fixes CODEOCEAN-WS
2023-11-04 18:46:32 +01:00
f70a73c9a2 Puma: Disable automatic reforking 2023-11-02 17:30:42 +01:00
2fb18e594e Configure mailer previews 2023-11-01 19:41:16 +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
7e66ed1c36 Disable Gravatar in Rails Admin 2023-10-29 15:30:54 +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
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
5bbc94f1d1 Remove info about study & link to feedback page 2023-10-22 12:07:41 +02:00
f9f6ab8570 Replace "Du" with "Sie" 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
2156204be4 Allow details and summary tags in HTML
Those two tags can be used to add expandable content, for example, to an exercise description.
2023-10-14 00:28:45 +02:00
84f844c1c5 Fix undesired overwrite of default_src in CSP 2023-10-13 13:19:17 +02:00
3aeef7ebdd CSP: Refactor custom settings to ease further expansion
* This change is introduced due to a corresponding change in CodeHarbor to allow SSO there.
2023-10-13 13:19:03 +02:00
c232a418f4 CSP: Recognize ACE of using data: images 2023-10-13 00:14:38 +02:00
10a499484b Fix typo in English locales 2023-10-11 23:06:31 +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
ce9dccc8f6 Puma: Explicitly disable preloading
Otherwise, setting WEB_CONCURRENCY would re-enable preloading.
2023-10-08 15:29:54 +02:00
4879c0172a CSP: Allow extending directives with 'none' 2023-10-08 13:46:32 +02:00
4653e93d13 Update Puma config to support phased restarts
Besides phased restarts, we also add further config options and configure the systemd integration (activated sockets, watchdog).
2023-10-08 12:26:05 +02:00
bebca01a88 Fix typo in German locale for runner exit status 2023-09-30 21:49:43 +02:00
b9ac2e7fdf Adapt text for forced pair programming exercise 2023-09-25 17:29:40 +02:00
e5678483cc Prevent duplicated 'pp_work_alone' events.
* Ensure only one `pp_work_alone` event is stored.
* Disable Turbolinks for Programming Groups Work Alone, so that the implement page is requested normally. Otherwise, Turbolinks would load the page first, just to notice that it needs to reload the page afterwards to include Highlight.js for the tips.
2023-09-23 20:45:49 +02:00
9f837412c7 Add waiting room to create programming groups (#1919)
Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de>
2023-09-21 15:07:10 +02:00
1bba4a006a Sentry: Check for span description before applying gsub! 2023-09-20 15:32:17 +02:00
d01a3b7bac Fix incorrect translation for "Check invitation" explanation
Amends 8a5dc7ab
2023-09-20 00:35:17 +02:00
8a5dc7abc0 Forward person when a programming group is created with them
Further, we remove the "check invitation" button and extract some methods to our new ProgrammingGroups object in JavaScript.

Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de>
2023-09-19 20:14:33 +00:00
9848c900c3 Fix incorrect label and form association.
This change is required for a better accessibility compatibility.
2023-09-19 15:43:02 +02:00
652f3fefcb Transform data privacy link from locales to view
Amends #1899
2023-09-19 15:38:25 +02:00
7deea1ddac Fix invalid timestamps for breadcrumbs in Sentry
See https://github.com/getsentry/sentry-ruby/issues/1874
2023-09-19 11:17:17 +02:00