fixing tests p1
This commit is contained in:
@@ -18,14 +18,13 @@ module Lti
|
||||
# exercise_id.nil? ==> the user has logged out. All session data is to be destroyed
|
||||
# exercise_id.exists? ==> the user has submitted the results of an exercise to the consumer.
|
||||
# Only the lti_parameters are deleted.
|
||||
def clear_lti_session_data(exercise_id = nil)
|
||||
@current_user = ExternalUser.find(@submission.user_id)
|
||||
def clear_lti_session_data(exercise_id = nil, user_id = nil, consumer_id = nil)
|
||||
if (exercise_id.nil?)
|
||||
session.delete(:consumer_id)
|
||||
session.delete(:external_user_id)
|
||||
else
|
||||
LtiParameter.destroy_all(consumers_id: @consumer.id,
|
||||
external_user_id: @current_user.external_id,
|
||||
LtiParameter.destroy_all(consumers_id: consumer_id,
|
||||
external_users_id: user_id,
|
||||
exercises_id: exercise_id)
|
||||
end
|
||||
end
|
||||
@@ -99,12 +98,12 @@ module Lti
|
||||
end
|
||||
private :return_to_consumer
|
||||
|
||||
def send_score(exercise_id, score)
|
||||
def send_score(exercise_id, score, user_id)
|
||||
::NewRelic::Agent.add_custom_parameters({ score: score, session: session })
|
||||
fail(Error, "Score #{score} must be between 0 and #{MAXIMUM_SCORE}!") unless (0..MAXIMUM_SCORE).include?(score)
|
||||
|
||||
lti_parameter = LtiParameter.where(consumers_id: session[:consumer_id],
|
||||
external_user_id: @current_user.external_id,
|
||||
external_users_id: user_id,
|
||||
exercises_id: exercise_id).first
|
||||
|
||||
consumer = Consumer.find_by(id: session[:consumer_id])
|
||||
@@ -123,7 +122,6 @@ module Lti
|
||||
|
||||
def set_current_user
|
||||
@current_user = ExternalUser.find_or_create_by(consumer_id: @consumer.id, external_id: @provider.user_id)
|
||||
#TODO is this really necessary, and does it work at all?
|
||||
@current_user.update(email: external_user_email(@provider), name: external_user_name(@provider))
|
||||
end
|
||||
private :set_current_user
|
||||
@@ -133,7 +131,7 @@ module Lti
|
||||
exercise_id = exercise.id unless exercise.nil?
|
||||
|
||||
lti_parameters = LtiParameter.find_or_create_by(consumers_id: options[:consumer].id,
|
||||
external_user_id: options[:parameters][:user_id].to_s,
|
||||
external_users_id: @current_user.id, #options[:parameters][:user_id].to_s,
|
||||
exercises_id: exercise_id)
|
||||
|
||||
lti_parameters.lti_parameters = options[:parameters].slice(*SESSION_PARAMETERS).to_json
|
||||
|
@@ -158,7 +158,7 @@ class ExercisesController < ApplicationController
|
||||
|
||||
def redirect_to_lti_return_path
|
||||
lti_parameter = LtiParameter.where(consumers_id: session[:consumer_id],
|
||||
external_user_id: @current_user.external_id,
|
||||
external_users_id: @current_user.id,
|
||||
exercises_id: @submission.exercise_id).first
|
||||
|
||||
path = lti_return_path(consumer_id: session[:consumer_id],
|
||||
@@ -228,7 +228,7 @@ class ExercisesController < ApplicationController
|
||||
def submit
|
||||
@submission = Submission.create(submission_params)
|
||||
score_submission(@submission)
|
||||
if lti_outcome_service?(@submission.exercise_id, @current_user.external_id, @current_user.consumer_id)
|
||||
if lti_outcome_service?(@submission.exercise_id, @current_user.id, @current_user.consumer_id)
|
||||
transmit_lti_score
|
||||
else
|
||||
redirect_after_submit
|
||||
@@ -237,7 +237,7 @@ class ExercisesController < ApplicationController
|
||||
|
||||
def transmit_lti_score
|
||||
::NewRelic::Agent.add_custom_parameters({ submission: @submission.id, normalized_score: @submission.normalized_score })
|
||||
response = send_score(@submission.exercise_id, @submission.normalized_score)
|
||||
response = send_score(@submission.exercise_id, @submission.normalized_score, @submission.user_id)
|
||||
|
||||
if response[:status] == 'success'
|
||||
redirect_after_submit
|
||||
|
@@ -22,7 +22,7 @@ class SessionsController < ApplicationController
|
||||
store_lti_session_data(consumer: @consumer, parameters: params)
|
||||
store_nonce(params[:oauth_nonce])
|
||||
redirect_to(implement_exercise_path(@exercise),
|
||||
notice: t("sessions.create_through_lti.session_#{lti_outcome_service?(@exercise.id, @current_user.external_id , @consumer.id) ? 'with' : 'without'}_outcome",
|
||||
notice: t("sessions.create_through_lti.session_#{lti_outcome_service?(@exercise.id, @current_user.id , @consumer.id) ? 'with' : 'without'}_outcome",
|
||||
consumer: @consumer))
|
||||
end
|
||||
|
||||
@@ -36,9 +36,8 @@ class SessionsController < ApplicationController
|
||||
end
|
||||
|
||||
def destroy_through_lti
|
||||
@consumer = Consumer.find_by(id: params[:consumer_id])
|
||||
@submission = Submission.find(params[:submission_id])
|
||||
clear_lti_session_data(@submission.exercise_id)
|
||||
clear_lti_session_data(@submission.exercise_id, @submission.user_id, params[:consumer_id])
|
||||
end
|
||||
|
||||
def new
|
||||
|
@@ -3,7 +3,7 @@ module LtiHelper
|
||||
return false if external_user_id == '' || consumer_id == ''
|
||||
|
||||
lti_parameters = LtiParameter.where(consumers_id: consumer_id,
|
||||
external_user_id: external_user_id,
|
||||
external_users_id: external_user_id,
|
||||
exercises_id: exercise_id).lis_outcome_service_url?
|
||||
!lti_parameters.nil? && lti_parameters.size > 0
|
||||
end
|
||||
|
@@ -1,6 +1,7 @@
|
||||
- external_user_id = @current_user.respond_to?(:external_id) ? @current_user.external_id : '' #'tests' #(@current_user.uuid.present? ? @current_user.uuid : '')
|
||||
- external_user_external_id = @current_user.respond_to?(:external_id) ? @current_user.external_id : '' #'tests' #(@current_user.uuid.present? ? @current_user.uuid : '')
|
||||
- external_user_id = @current_user.respond_to?(:external_id) ? @current_user.id : '' #'tests' #(@current_user.uuid.present? ? @current_user.uuid : '')
|
||||
- consumer_id = @current_user.respond_to?(:external_id) ? @current_user.consumer_id : '' #'tests' #(@current_user.uuid.present? ? @current_user.uuid : '')
|
||||
#editor.row data-exercise-id=exercise.id data-message-depleted=t('exercises.editor.depleted') data-message-timeout=t('exercises.editor.timeout', permitted_execution_time: @exercise.execution_environment.permitted_execution_time) data-errors-url=execution_environment_errors_path(exercise.execution_environment) data-submissions-url=submissions_path data-user-id=@current_user.id data-user-external-id=external_user_id
|
||||
#editor.row data-exercise-id=exercise.id data-message-depleted=t('exercises.editor.depleted') data-message-timeout=t('exercises.editor.timeout', permitted_execution_time: @exercise.execution_environment.permitted_execution_time) data-errors-url=execution_environment_errors_path(exercise.execution_environment) data-submissions-url=submissions_path data-user-id=@current_user.id data-user-external-id=external_user_external_id
|
||||
div id="sidebar" class=(@exercise.hide_file_tree ? 'sidebar-col-collapsed' : 'sidebar-col') = render('editor_file_tree', exercise: @exercise, files: @files)
|
||||
div id='output_sidebar' class='output-col-collapsed' = render('exercises/editor_output', external_user_id: external_user_id, consumer_id: consumer_id )
|
||||
div id='frames' class='editor-col'
|
||||
|
Reference in New Issue
Block a user