diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 285acf61..0f6fb9e1 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -22,7 +22,7 @@ class SessionsController < ApplicationController store_nonce(params[:oauth_nonce]) if params[:custom_redirect_target] redirect_to(URI.parse(params[:custom_redirect_target].to_s).path) - elsif PairProgramming23Study.participate? + elsif PairProgramming23Study.participate?(current_user, @exercise) redirect_to(new_exercise_programming_group_path(@exercise)) else redirect_to(implement_exercise_path(@exercise), diff --git a/lib/pair_programming23_study.rb b/lib/pair_programming23_study.rb index 126fc012..529e5c16 100644 --- a/lib/pair_programming23_study.rb +++ b/lib/pair_programming23_study.rb @@ -2,9 +2,27 @@ class PairProgramming23Study ENABLE = ENV.fetch('PAIR_PROGRAMMING_23_STUDY', nil) == 'true' + STUDY_GROUP_IDS = [368, 451].freeze - def self.participate? - # TODO: Decide which users are in the study - ENABLE + def self.participate?(user, exercise) + ENABLE || participate_in_pp?(user, exercise) + end + + def self.participate_in_pp?(user, exercise) + # All easy tasks of the first week to be solved by the participants on their own + if experiment_course?(user.current_study_group_id) && [636, 647, 648, 649, 637, 638, 623, 639, 650, 625, 624, 651, 653, 654, 655, 664, 656].exclude?(exercise.id) + user_group = user.id % 3 # => 0, 1, 2 + case user_group + when 0, 1 + return true + else # 2 + return false + end + end + false + end + + def self.experiment_course?(study_group_id) + STUDY_GROUP_IDS.include? study_group_id end end