150 Commits

Author SHA1 Message Date
1bb61f73fe Enable interventions for ProgrammingGroups and add indices 2023-12-08 21:33:06 +01:00
3b05a44b9e Allow programming groups to score exercises remotely 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
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
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
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
cc90861bd5 Generate Session ID on server for synchronized editor
This change allows us to use the session ID immediately for the connection_change and connection_status methods. Hence, we can identify different browser sessions of the same user.
2023-09-12 18:47:06 +02:00
735a74901f Update ACE Editor to version 1.2.0
Previously, we were at an ACE editor published between 1.1.8 and 1.1.9. This caused multiple issues and was especially a problem for the upcoming pair programming feature. Further, updating ace is a long-time priority, see https://github.com/openHPI/codeocean/issues/250.

Now, we are not yet updating to the latest version, but rather to the next minor version. This already contains breaking changes, and we are currently interested to keep the number of changes as low as possible. Further updating ACE might be still a future task.

The new ACE version 1.2.0 is taken from this tag: https://github.com/ajaxorg/ace-builds/releases/tag/v1.2.0.
We are using the src build (not minified, not in the noconflict version), since the same was used before as well.

Further, we need to change our migration for storing editor events. Since the table is not yet used (in production), we also update the enum.
2023-09-12 16:41:33 +02:00
5f99e7ee54 Store Session ID for Event::SynchronizedEditor 2023-09-08 11:48:53 +02:00
5dd6df9418 Synchronized Editor: Store all events and allow multiple tabs
* This commit refactors the table used to store events.
* We also use a UUID as session identifier in the synchronized editor to support multiple concurrent tabs opened by the same user.
* Further, we renamed some methods to make them easier to distinguish.
2023-09-08 11:48:53 +02:00
4b90a2a3c5 Add exercise feedback page for pair programming study 2023-09-05 22:56:51 +02:00
79422225a8 Add events for pair programming study 2023-09-05 22:56:51 +02:00
9d1be1eeff Migrate AnomalyNotification to contributor
* Also, this commit aims to fix the (broken) anomaly notifications.
2023-08-24 19:32:06 +02:00
a1941336d9 Fix Runner access for programming groups
* We also rename the corresponding columns in the Runner model, so that for polymorphic association gets clear.
2023-08-24 19:32:06 +02: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
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
0234414bae Rename user to contributor in submission 2023-08-24 19:32:06 +02:00
db56a690c7 Add option to suppress feedback messages
This is used to dynamically exclude some test results from being shown to users, but still allows them to run in the background (e.g., for research).
2023-07-27 10:38:49 +02:00
ea7ee2498d Remove outdated information from schema.rb 2023-07-10 22:55:13 +02:00
e3e6fc3af1 Add foreign keys and an index to StructuredError(Attributes)
These changes will ensure a better data consistency and faster access. We further ensure that records should be deleted properly.
2023-03-20 23:50:12 +01:00
417ead3d3f Reduce SQL queries to find a unsolved recommended RfC
Fixes CODEOCEAN-JQ
2023-03-14 13:56:23 +01:00
9c3392b324 Add consumer-based RfC Visibility settings
This setting will be useful to increase data protection, where users might not be allowed to see RfCs from other contexts.
2023-02-20 23:47:06 +01:00
93188ba04d added migration to replace existing file_extension containing nil with '' 2023-02-09 18:42:24 +01:00
2679f5fa56 Allow random selection for ProxyExercise 2023-01-20 21:02:20 +01:00
6bfda8e552 Migrate default intervalstyle in database
By switching the `intervalstyle`, we assume to fix CODEOCEAN-FT. It is caused by by PgBouncer providing different database connections to Rails that might behave differently.
2022-12-06 23:43:23 +01:00
90b30e2bf7 Upgrade to Rails 7.0 and apply new framework defaults
* Remove `send_stream` method pulled in before upgrading Rails
* Remove spring, it is no longer included by default for new apps
* Remove deprecated options from environments
* Remove old asset paths and workarounds no longer needed
* Remove unnecessary `OAUTH_10_SUPPORT` const, LTI still uses OAuth 1.0
* Dump schema with new defaults (and specify precision for timestamps where needed)
2022-12-04 15:21:59 +01:00
eb188dcd71 Add privilegedExecution flag to database and Poseidon Strategy 2022-09-24 22:32:41 +02:00
dffeca27de Fix null: false error in earlier migration 2022-09-24 00:05:21 +02:00
04ed45ea73 Migrate database and models for study-group-based authorization 2022-09-22 19:24:26 +02:00
6e213f754f minor styling change to authenticationtoken model, changed the expire_at column of AuthenticationToken form date to datetime 2022-08-05 08:05:07 +02:00
d64daadd21 added AuthenticationToken model, updated some restrictions for the authentication token table, added dependent destroy to the user model for authentication tokens 2022-08-05 08:05:07 +02:00
7e01389a6f Update schema.rb according to prodcution environment 2022-07-19 15:28:16 +02:00
d7c5e89624 Remove unused columns from schema.rb 2022-07-19 15:28:15 +02:00
aaa0772c95 Bundle update 2022-06-15 17:37:23 +02:00
db62686b75 Migrate existing Testruns to use TestrunMessages 2022-04-29 22:44:35 +02:00
e9efb5bc2b Add exit_code and status to Testruns, create model for TestrunMessages
* This is the first step to migrate the `output` column from Testruns to a dedicated table TestrunMessages
2022-04-28 15:18:51 +02:00
d10735d0a8 Persist Execution Environment when running code 2022-04-15 15:22:19 +02:00
da4e10b990 Add CommunitySolution
* Also slightly refactor some JS files
2021-11-23 01:38:31 +01:00
9079a0b15a Implement Tips Intervention 2021-11-23 01:38:10 +01:00
e210795277 Regenrate schema with latest Rails 6.1 framework 2021-11-09 17:39:16 +01:00
06ef4430f5 Change exposed_ports to array 2021-11-01 17:13:02 +01:00
8bd9a93944 Add NOT NULL constraint on cpu_limit 2021-11-01 17:12:55 +01:00
0cc1c7a396 Combine runner waiting_time migrations 2021-11-01 17:12:55 +01:00
b847daf823 Remove waiting_time from runner model
After removing the logic that stores the duration that has been
waited for a runner in the runner, this now also removes the column
from the database as it is not used anymore.
2021-11-01 17:12:49 +01:00
90fac7b94c Copy execution environment to Poseidon on create and update
When creating or updating an execution environment, an API call to
Poseidon is made with the necessary information to create the
corresponding Nomad job.

If runner management is configured, his will display a warning
(currently in the same color as if it were a success) in the UI, if the
API call fails. The environment is saved even if it fails.
If runner management is not configured, this warning will not be created.
2021-11-01 17:12:48 +01:00
fc6aa12b0a Remove handling of runner timeouts 2021-11-01 17:12:47 +01:00
17bd2d8726 Reuse runners per user and execution environment
Co-authored-by: Jan-Eric Hellenberg <jan-eric.hellenberg@student.hpi.uni-potsdam.de>
Co-authored-by: Maximilian Pass <maximilian.pass@student.hpi.uni-potsdam.de>
2021-11-01 17:12:46 +01:00
11962a1d65 Upgrade to Rails 6.1 and apply new framework defaults 2021-05-12 16:49:14 +02:00
8378070bc2 Upgrade to Rails 6.0 and apply new framework defaults 2021-05-12 16:47:05 +02:00