542 Commits

Author SHA1 Message Date
33aa0cecba Provide current-user application-wide
* This change allows us to reuse the current user in multiple places.
* Sentry still receives the same information as before.
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
97764bd02e Limit programming groups to two people
* adapt text on programming_groups/new site
* in German change from 'Sie' to 'du'
2023-09-05 22:56:51 +02:00
094aba096c Fix feedback page by accessing the contributor
Fixes CODEOCEAN-TE
2023-08-30 18:16:47 +02:00
235bf771fe Always use user object instead of ID and Type 2023-08-26 00:39:47 +02:00
01accdae58 Use author_in_programming_group? policy for files & RfCs
* Allow all members of a programming group to list and solve RfCs
* Also adjust policy specs to respect programming groups
2023-08-24 19:32:06 +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
977fa4539e Check polymorphic type in validations
* Previously, some models had "duplicated" `belongs_to` associations, which were now removed (and replaced by the `include Creation`).
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
e2baa2ee55 Send score for all members of a programming 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
28a4b672f9 Remove legacy save search endpoint 2023-07-28 13:18:39 +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
5faf5be033 Fix Rubocop offenses 2023-07-27 09:32:45 +02:00
fd2d94568a Handle OutOfMemory runner errors with gVisor 2023-07-21 16:38:49 +02:00
83d2b8f5fd Add return value for Exercise#valid_submission_deadlines? 2023-06-23 22:20:04 +02:00
a16c1a2bd3 Order files by path and name 2023-05-11 22:50:33 +02:00
0aa73d30e9 Reduce SQL queries for querying files when creating submissions
This is especially useful for the RemoteEvaluationsController.

Closes CODEOCEAN-KX
2023-04-02 17:05:22 +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
5a36e57b9f Reuse ActiveRecord object after creating StructuredErrorAttributes
With these changes, the newly created StructuredError will have all StructuredErrorAttributes preloaded, thus speeding up further access to this association.
2023-03-20 23:43:53 +01:00
a7cd85507e Reduce SQL queries in the exercise controller
Fixes CODEOCEAN-JK
2023-03-14 20:58:21 +01:00
417ead3d3f Reduce SQL queries to find a unsolved recommended RfC
Fixes CODEOCEAN-JQ
2023-03-14 13:56:23 +01:00
939b31967f Reduce SQL queries for score runs
Fixes CODEOCEAN-JR
2023-03-14 13:56:23 +01:00
ddf041ac05 Check RfC visibility before redirecting users 2023-02-21 10:01:01 +01:00
d03f2c7bf4 Slightly improve Statistics Controller performance 2023-02-21 01:27:32 +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
e632f95060 Prevent storing empty results
Fixes CODEOCEAN-HS
2023-02-17 18:13:48 +01:00
e96eda69d7 Bulk insert LinterCheckRuns
Similar to TestrunMessages, we insert all linter check runs through a bulk operation, potentially reducing time.
2023-02-16 10:50:01 +01:00
b375aed543 Bulk insert TestrunMessages
With Sentry, we identified that all TestrunMessages are created one-by-one (besides passing them all in an array to #create!). Therefore, we now do the validations on our own first and then store all once, dramatically reducing the required time.

Fixes CODEOCEAN-HP
2023-02-16 10:50:01 +01:00
90d713a1d4 fix (potential) problems with empty file_extensions 2023-02-09 18:42:24 +01:00
637f872f34 add file_extension validation for file_type 2023-02-09 18:42:24 +01:00
04504973ba Adjust Sentry's user context 2023-02-03 00:16:52 +01:00
2679f5fa56 Allow random selection for ProxyExercise 2023-01-20 21:02:20 +01:00
5d02251cbb Replace BooleanPresenceValidator with InclusionValidator
The `BooleanPresenceValidator` is causing issues with Ruby 3.2+ YJIT irregularly.

Fixes CODEOCEAN-GQ, fixes CODEOCEAN-GR
2023-01-08 14:10:14 +01:00
922ba5df4e Fix rubocop offenses 2023-01-02 10:06:00 +01:00
7a2e442d91 Reject reference implementations only for Runs 2022-12-12 20:53:46 +01:00
bc5baed05e Use exec_query for custom SQL execution
Also align how we use query Postgres from controllers.

The change is mainly due to regular (but not reproducible) issues with the `intervalstyle` defaulting to `postgres` (instead of `iso8601`) and thereby causing issues. We're just experimenting to see whether this change resolves the issue.
2022-12-06 22:41:00 +01:00
b7a3fd4586 Refactor exercise statistics to use convert times in Ruby 2022-12-05 21:59:34 +01:00
574e99eddd Fix rubocop offenses - Requires Ruby 3.1+ 2022-11-25 11:10:06 +01:00
f17718f69f CSP: Extract JavaScript from layout to assets
Fixes CODEOCEAN-CP
2022-11-16 19:47:58 +01:00
d50e6d30e9 List Files: Catch more Runner::Errors 2022-11-14 13:51:04 +01:00
2753e4ef5b Always catch StandardError in Threads and release connection 2022-11-11 22:50:27 +01:00
cf957eb715 Prevent reference_implementation to be copied to Runner 2022-11-04 17:30:30 +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
ad8743a7d0 FileTree: Show more distinct icons where possible 2022-10-29 18:49:18 +02:00