allow only one intervention per user and exercise but 3 interventions per user and day

This commit is contained in:
Thomas Hille
2017-10-04 16:47:25 +02:00
parent 2806d9bf85
commit f7e013ed89

View File

@ -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