Use final submission for exercise feedback

* Also, check for required permission
This commit is contained in:
Sebastian Serth
2022-08-24 23:49:46 +02:00
parent f4d350577a
commit 35dd745a29

View File

@ -74,7 +74,7 @@ class UserExerciseFeedbacksController < ApplicationController
def update def update
submission = begin submission = begin
current_user.submissions.where(exercise_id: @exercise.id).order('created_at DESC').first current_user.submissions.where(exercise_id: @exercise.id).order('created_at DESC').final.first
rescue StandardError rescue StandardError
nil nil
end end
@ -127,14 +127,16 @@ class UserExerciseFeedbacksController < ApplicationController
user_type = current_user.class.name user_type = current_user.class.name
latest_submission = Submission latest_submission = Submission
.where(user_id: user_id, user_type: user_type, exercise_id: exercise_id) .where(user_id: user_id, user_type: user_type, exercise_id: exercise_id)
.order(created_at: :desc).first .order(created_at: :desc).final.first
authorize(latest_submission, :show?)
params[:user_exercise_feedback] params[:user_exercise_feedback]
.permit(:feedback_text, :difficulty, :exercise_id, :user_estimated_worktime) .permit(:feedback_text, :difficulty, :exercise_id, :user_estimated_worktime)
.merge(user_id: user_id, .merge(user_id: user_id,
user_type: user_type, user_type: user_type,
submission: latest_submission, submission: latest_submission,
normalized_score: latest_submission.normalized_score) normalized_score: latest_submission&.normalized_score)
end end
def validate_inputs(uef_params) def validate_inputs(uef_params)