Sebastian Serth
07458f4e2a
Fix incomplete Pair Programming Feedbacks
2023-09-13 09:59:31 +02:00
Sebastian Serth
c29256aa81
Fix Rubocop offenses
2023-09-11 14:10:16 +02:00
kiragrammel
930d532fb6
Add third question in pp exercise feedback
2023-09-08 11:48:53 +02:00
Sebastian Serth
50a4707f65
Prevent duplicated WebSocket close for client_kill
...
Our investigation in CODEOCEAN-TV showed that we might attempt to close the WebSocket connection twice, if learners press the stop button. With this commit, we fix that issue.
2023-09-08 00:16:12 +02:00
Sebastian Serth
c6461f6bdd
Only log runs not stopped by a client to Sentry
2023-09-08 00:05:50 +02:00
Sebastian Serth
3ad946537b
Log terminated_by_client
to Sentry
2023-09-06 23:49:48 +02:00
Sebastian Serth
80b457a0c9
Add Sentry exception to Runner::Error in SubmissionsController
2023-09-06 23:05:56 +02:00
Sebastian Serth
8dd157e346
Only send LTI score for external users
2023-09-06 00:28:34 +02:00
kiragrammel
4b90a2a3c5
Add exercise feedback page for pair programming study
2023-09-05 22:56:51 +02:00
kiragrammel
79422225a8
Add events for pair programming study
2023-09-05 22:56:51 +02:00
kiragrammel
0b42bba988
Assign users into A/B groups
2023-09-05 22:56:50 +02:00
Sebastian Serth
f36f3cdc64
Rename user to contributor in exercise statistics
...
Fixes CODEOCEAN-TN
2023-09-05 18:44:20 +02:00
Sebastian Serth
4b3f5d152b
Set study group for current user during LTI launch
2023-09-05 16:00:03 +02:00
Sebastian Serth
05a5a52c8e
Require user for InternalUsersController
...
Fixes CODEOCEAN-TG
2023-09-01 22:18:03 +02:00
Sebastian Serth
7aeca0078f
Reduce N+1 queries for ExercisesController#feedback
...
Fixes CODEOCEAN-TF
2023-08-30 18:46:09 +02:00
Sebastian Serth
6eed794aa0
Retry store_lti_session_data
...
We need to store or update the LTI parameters. However, this operation is not atomic and multiple requests can interfere with our database operation. Therefore, we need to retry in case the record is not unique.
Fixes CODEOCEAN-TC
2023-08-28 22:20:46 +02:00
Sebastian Serth
235bf771fe
Always use user object instead of ID and Type
2023-08-26 00:39:47 +02:00
kiragrammel
c2995c96f0
Remove clear_lti_session_data as it is no longer needed
...
* no lti session data anymore included in the function
* decided not to delete the pg_id here as it is handled in create_through_lti and implement
* the function is only called once without an exercise id so the values are now directly deleted there
2023-08-24 19:32:06 +02:00
Sebastian Serth
dddebcca67
Prevent new programming groups in case of existing submission for study group
2023-08-24 19:32:06 +02:00
Sebastian Serth
3f674d3687
Prevent accessing another exercise during a programming group session
2023-08-24 19:32:06 +02:00
kiragrammel
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
Sebastian Serth
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
Sebastian Serth
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
Sebastian Serth
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
kiragrammel
e2baa2ee55
Send score for all members of a programming group
2023-08-24 19:32:06 +02:00
kiragrammel
2fb8def1d0
Add PairProgrammingStudy
...
* Later used to create the A/B groups
2023-08-24 19:32:06 +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
kiragrammel
0234414bae
Rename user to contributor in submission
2023-08-24 19:32:06 +02:00
kiragrammel
97138288f4
Delete unused LTI params from session
2023-08-24 19:32:06 +02:00
Sebastian Serth
245c3dba8c
Update from proforma to proformaxml
2023-08-24 00:14:41 +02:00
Sebastian Serth
269f135812
Fix Errno::ECONNRESET error for Tubesock
...
* We must not close the socket manually (with `client_socket.close`), as this would close it twice. Compare: 2c83794b85/lib/tubesock.rb (L92)
* When the socket is closed twice, nginx registers a `Connection reset by peer` error: `recv() failed (104: Connection reset by peer) while proxying upgraded connection`
* Tubesock automatically closes the socket when the `hijack` block ends and otherwise ignores `Errno::ECONNRESET`: 2c83794b85/lib/tubesock.rb (L161-L162)
2023-08-22 00:20:02 +02:00
Sebastian Serth
2f0cf615d0
Retry file conversion in case of DB connection issues
...
Fix CODEOCEAN-RZ
2023-08-21 13:34:11 +02:00
Sebastian Serth
4fc38c7208
Enable Sentry browser profiling
2023-08-18 09:52:52 +02:00
Sebastian Serth
5f21f99f55
Refactor conversion of files JSON for download
...
Tries fixing CODEOCEAN-RQ
2023-08-15 23:04:03 +02:00
Sebastian Serth
28a4b672f9
Remove legacy save search endpoint
2023-07-28 13:18:39 +02:00
Sebastian Serth
01f4f0c2cd
Remove legacy CodePilot integration
2023-07-28 08:50:00 +02:00
Sebastian Serth
bf662ecb81
Remove legacy forum search and search buttons
2023-07-28 08:45:05 +02:00
Sebastian Serth
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
Sebastian Serth
5faf5be033
Fix Rubocop offenses
2023-07-27 09:32:45 +02:00
Sebastian Serth
fd2d94568a
Handle OutOfMemory runner errors with gVisor
2023-07-21 16:38:49 +02:00
Sebastian Serth
264927e3c4
Fix unnecessary testrun for each successful test / score action.
...
This commit resolves a regression introduced by commit 9c3ec3c7
.
We still might want to remove this false data from our database, which is still pending.
2023-07-15 19:00:26 +02:00
Sebastian Serth
c6977b6319
Catch SocketError
for LTI
2023-07-13 10:51:47 +02:00
Sebastian Serth
bcdc71021e
Fix Rubocop offenses
2023-06-11 20:46:45 +02:00
Sebastian Serth
b79f0015ad
Fix rubocop offenses
2023-04-03 15:08:30 +02:00
Sebastian Serth
72ca8c57de
Reduce SQL queries for querying tips.
...
Closes CODEOCEAN-KY
2023-04-02 17:11:53 +02:00
Sebastian Serth
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
Sebastian Serth
e8a21ea319
Further optimize extracting errors
...
The previous solution worked, but always queried all ErrorTemplateAttributes, even if there was no match of the ErrorTemplate. This solution resolves this issue and still benefits from less SQL queries.
2023-03-21 07:34:31 +01:00
Sebastian Serth
7af7484f7a
Improve performance of the FlowrController
2023-03-20 23:52:55 +01:00
Sebastian Serth
09809cc12e
Preload error template attributes in SubmissionsController
...
The join operation is okay, since a similar one is otherwise performed automatically by Rails
2023-03-20 23:52:34 +01:00
Sebastian Serth
6d3587e813
Rescue network-related issues in transmitting LTI scores
...
Fixes CODEOCEAN-JS
2023-03-15 13:05:46 +01:00