From 392dd77b4af25fb114165f3e378d13e94e2ef89c Mon Sep 17 00:00:00 2001 From: Thomas Hille Date: Mon, 3 Apr 2017 17:17:34 +0200 Subject: [PATCH] do not show interventions on solved exercises do not show more than 2 interventions per day --- app/controllers/exercises_controller.rb | 7 ++++--- app/models/exercise.rb | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 4a643a5d..531d5e76 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -165,7 +165,8 @@ class ExercisesController < ApplicationController def implement redirect_to(@exercise, alert: t('exercises.implement.no_files')) unless @exercise.files.visible.exists? - user_got_enough_interventions = UserExerciseIntervention.where(exercise: @exercise, user: current_user).count >= max_intervention_count + 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 is_java_course = @course_token && @course_token.eql?(java_course_token) user_intervention_group = UserGroupSeparator.getInterventionGroup(current_user) @@ -173,9 +174,9 @@ class ExercisesController < ApplicationController case user_intervention_group when :no_intervention when :break_intervention - @show_break_interventions = (!is_java_course || user_got_enough_interventions) ? "false" : "true" + @show_break_interventions = (user_solved_exercise || !is_java_course || user_got_enough_interventions) ? "false" : "true" when :rfc_intervention - @show_rfc_interventions = (!is_java_course || user_got_enough_interventions) ? "false" : "true" + @show_rfc_interventions = (user_solved_exercise || !is_java_course || user_got_enough_interventions) ? "false" : "true" end @search = Search.new diff --git a/app/models/exercise.rb b/app/models/exercise.rb index 2d7edde2..d3025bed 100644 --- a/app/models/exercise.rb +++ b/app/models/exercise.rb @@ -341,6 +341,10 @@ class Exercise < ActiveRecord::Base end end + def has_user_solved(user) + return maximum_score(user).to_i == maximum_score.to_i + end + def set_default_values set_default_values_if_present(public: false) end