diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 0db1e19f..c2d0dcfa 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -299,7 +299,7 @@ class ExercisesController < ApplicationController private :update_exercise_tips - def implement # rubocop:disable Metrics/CyclomaticComplexity + def implement # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity if session[:pg_id] && current_contributor.exercise != @exercise # we are acting on behalf of a programming group if current_user.admin? @@ -315,7 +315,7 @@ class ExercisesController < ApplicationController # we are just acting on behalf of a single user who has already worked on this exercise as part of a programming group **in the context of the current study group** session[:pg_id] = pg.id @current_contributor = pg - elsif PairProgramming23Study.participate?(current_user, @exercise) && current_user.submissions.where(study_group_id: current_user.current_study_group_id, exercise: @exercise).none? + elsif session[:pg_id].blank? && PairProgramming23Study.participate?(current_user, @exercise) && current_user.submissions.where(study_group_id: current_user.current_study_group_id, exercise: @exercise).none? Event.create(category: 'pp_work_alone', user: current_user, exercise: @exercise, data: nil, file_id: nil) current_user.pair_programming_waiting_users&.find_by(exercise: @exercise)&.update(status: :worked_alone) end