Sebastian Serth
c29256aa81
Fix Rubocop offenses
2023-09-11 14:10:16 +02:00
Sebastian Serth
5f99e7ee54
Store Session ID for Event::SynchronizedEditor
2023-09-08 11:48:53 +02:00
kiragrammel
02e50e9921
Correct connection status if user used multiple windows
2023-09-08 11:48:53 +02:00
kiragrammel
930d532fb6
Add third question in pp exercise feedback
2023-09-08 11:48:53 +02:00
Sebastian Serth
b43441f85e
Set lastDeltaObject per file
...
* This change will potentially resolve a race condition that could occur when the same change was simultaneously performed in two different files.
2023-09-08 11:48:53 +02:00
Sebastian Serth
f7c2fbebd6
Simplify comparison of delta objects
2023-09-08 11:48:53 +02:00
Sebastian Serth
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
Sebastian Serth
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
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
6d6851a27a
Check for Sentry span before appending header for WebSocket
...
Fix CODEOCEAN-FRONTEND-2X
2023-09-07 22:50:14 +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
Sebastian Serth
9f37034d0b
Prevent multiple unsubscribe calls for ActionCable
2023-09-06 00:00:27 +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
d1d5b0df6f
Etherpad link for pair programming feedback
2023-09-05 22:56:51 +02:00
kiragrammel
056a8e5107
Show if partner is online
2023-09-05 22:56:51 +02:00
kiragrammel
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
kiragrammel
0e4a239960
Unsubscribe from channel when redirecting
...
fixes CODEOCEAN-FRONTEND-2S
2023-09-05 22:56:51 +02:00
kiragrammel
23a95d315d
Synchronized editor for multiple files
2023-09-05 22:56:51 +02:00
kiragrammel
7df37078f4
Add etherpad to exchange user IDs
2023-09-05 22:56:51 +02:00
kiragrammel
e3bf14efe1
Add button to start (video) chat with programming group
2023-09-05 22:56:50 +02:00
kiragrammel
0b42bba988
Assign users into A/B groups
2023-09-05 22:56:50 +02:00
kiragrammel
125215ea35
Show in statusbar on implement route if pair programming session
2023-09-05 19:41:52 +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
094aba096c
Fix feedback page by accessing the contributor
...
Fixes CODEOCEAN-TE
2023-08-30 18:16:47 +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
89afb599e4
Apply changes from team members in own editor
2023-08-26 00:38:58 +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
9d1be1eeff
Migrate AnomalyNotification to contributor
...
* Also, this commit aims to fix the (broken) anomaly notifications.
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
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
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