From f7e013ed8975718bce79636396cd69bea6ed3f01 Mon Sep 17 00:00:00 2001 From: Thomas Hille Date: Wed, 4 Oct 2017 16:47:25 +0200 Subject: [PATCH 1/4] allow only one intervention per user and exercise but 3 interventions per user and day --- app/controllers/exercises_controller.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 141b47ee..5eab7a02 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -166,7 +166,9 @@ class ExercisesController < ApplicationController def implement redirect_to(@exercise, alert: t('exercises.implement.no_files')) unless @exercise.files.visible.exists? user_solved_exercise = @exercise.has_user_solved(current_user) - user_got_enough_interventions = UserExerciseIntervention.where(user: current_user).where("created_at >= ?", Time.zone.now.beginning_of_day).count >= max_intervention_count_per_day + count_interventions_today = UserExerciseIntervention.where(user: current_user).where("created_at >= ?", Time.zone.now.beginning_of_day).count + user_got_intervention_in_exercise = ! UserExerciseIntervention.where(user: current_user, exercise: @exercise).empty? + user_got_enough_interventions = count_interventions_today >= max_intervention_count_per_day || user_got_intervention_in_exercise is_java_course = @course_token && @course_token.eql?(java_course_token) user_intervention_group = UserGroupSeparator.getInterventionGroup(current_user) @@ -174,9 +176,9 @@ class ExercisesController < ApplicationController case user_intervention_group when :no_intervention when :break_intervention - @show_break_interventions = (user_solved_exercise || !is_java_course || user_got_enough_interventions) ? "false" : "true" + @show_break_interventions = (!user_solved_exercise && is_java_course && !user_got_enough_interventions) ? "true" : "false" when :rfc_intervention - @show_rfc_interventions = (user_solved_exercise || !is_java_course || user_got_enough_interventions) ? "false" : "true" + @show_rfc_interventions = (!user_solved_exercise && is_java_course && !user_got_enough_interventions) ? "true" : "false" end @search = Search.new From 577f157996b20edb944fe1f1edf621ff6e2b85b8 Mon Sep 17 00:00:00 2001 From: Thomas Hille Date: Wed, 4 Oct 2017 16:51:41 +0200 Subject: [PATCH 2/4] extracted number of interventions per exercise into own variable --- app/controllers/exercises_controller.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 5eab7a02..85131009 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -24,6 +24,10 @@ class ExercisesController < ApplicationController 3 end + def max_intervention_count_per_exercise + 1 + end + def java_course_token "702cbd2a-c84c-4b37-923a-692d7d1532d0" @@ -167,7 +171,7 @@ class ExercisesController < ApplicationController redirect_to(@exercise, alert: t('exercises.implement.no_files')) unless @exercise.files.visible.exists? user_solved_exercise = @exercise.has_user_solved(current_user) count_interventions_today = UserExerciseIntervention.where(user: current_user).where("created_at >= ?", Time.zone.now.beginning_of_day).count - user_got_intervention_in_exercise = ! UserExerciseIntervention.where(user: current_user, exercise: @exercise).empty? + user_got_intervention_in_exercise = UserExerciseIntervention.where(user: current_user, exercise: @exercise).size >= max_intervention_count_per_exercise user_got_enough_interventions = count_interventions_today >= max_intervention_count_per_day || user_got_intervention_in_exercise is_java_course = @course_token && @course_token.eql?(java_course_token) From 9733d32665030caa0bb46d3760adae575cf8f7a6 Mon Sep 17 00:00:00 2001 From: Thomas Hille Date: Wed, 15 Nov 2017 22:53:18 +0100 Subject: [PATCH 3/4] switched ! to not and && to and --- app/controllers/exercises_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 85131009..16390d5a 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -172,17 +172,17 @@ class ExercisesController < ApplicationController user_solved_exercise = @exercise.has_user_solved(current_user) count_interventions_today = UserExerciseIntervention.where(user: current_user).where("created_at >= ?", Time.zone.now.beginning_of_day).count user_got_intervention_in_exercise = UserExerciseIntervention.where(user: current_user, exercise: @exercise).size >= max_intervention_count_per_exercise - user_got_enough_interventions = count_interventions_today >= max_intervention_count_per_day || user_got_intervention_in_exercise - is_java_course = @course_token && @course_token.eql?(java_course_token) + user_got_enough_interventions = count_interventions_today >= max_intervention_count_per_day or user_got_intervention_in_exercise + is_java_course = @course_token and @course_token.eql?(java_course_token) user_intervention_group = UserGroupSeparator.getInterventionGroup(current_user) case user_intervention_group when :no_intervention when :break_intervention - @show_break_interventions = (!user_solved_exercise && is_java_course && !user_got_enough_interventions) ? "true" : "false" + @show_break_interventions = (not user_solved_exercise and is_java_course and not user_got_enough_interventions) ? "true" : "false" when :rfc_intervention - @show_rfc_interventions = (!user_solved_exercise && is_java_course && !user_got_enough_interventions) ? "true" : "false" + @show_rfc_interventions = (not user_solved_exercise and is_java_course and not user_got_enough_interventions) ? "true" : "false" end @search = Search.new From 851beac4e70a2eabb76ad9725957c457396abbaa Mon Sep 17 00:00:00 2001 From: Thomas Hille Date: Thu, 16 Nov 2017 17:11:37 +0100 Subject: [PATCH 4/4] removed == true in condition --- app/assets/javascripts/editor/editor.js.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 2d145e34..f6ff6887 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -580,7 +580,7 @@ configureEditors: function () { * */ initializeInterventionTimer: function() { - if ($('#editor').data('rfc-interventions') == true || $('#editor').data('break-interventions') == true) { // split in break or rfc intervention + if ($('#editor').data('rfc-interventions') || $('#editor').data('break-interventions')) { // split in break or rfc intervention window.onblur = function() { window.blurred = true; }; window.onfocus = function() { window.blurred = false; };