Refactor LTI study group assignment
This commit is contained in:
@ -75,9 +75,9 @@ module Lti
|
|||||||
result
|
result
|
||||||
end
|
end
|
||||||
|
|
||||||
def mooc_course
|
def context_id?
|
||||||
# All Xikolo platforms set the custom_course to the course code
|
# All platforms (except HPI Schul-Cloud) set the context_id
|
||||||
params[:custom_course]
|
params[:context_id]
|
||||||
end
|
end
|
||||||
|
|
||||||
def refuse_lti_launch(options = {})
|
def refuse_lti_launch(options = {})
|
||||||
@ -195,13 +195,13 @@ module Lti
|
|||||||
|
|
||||||
|
|
||||||
def set_study_group_membership
|
def set_study_group_membership
|
||||||
group = if mooc_course
|
group = if not context_id?
|
||||||
|
StudyGroup.find_or_create_by(external_id: @provider.resource_link_id, consumer: @consumer)
|
||||||
|
else
|
||||||
# Ensure to find the group independent of the name and set it only once.
|
# Ensure to find the group independent of the name and set it only once.
|
||||||
StudyGroup.find_or_create_by(external_id: @provider.context_id, consumer: @consumer) do |new_group|
|
StudyGroup.find_or_create_by(external_id: @provider.context_id, consumer: @consumer) do |new_group|
|
||||||
new_group.name = @provider.context_title
|
new_group.name = @provider.context_title
|
||||||
end
|
end
|
||||||
else
|
|
||||||
StudyGroup.find_or_create_by(external_id: @provider.resource_link_id, consumer: @consumer)
|
|
||||||
end
|
end
|
||||||
group.external_users << @current_user unless group.external_users.include? @current_user
|
group.external_users << @current_user unless group.external_users.include? @current_user
|
||||||
group.save
|
group.save
|
||||||
|
Reference in New Issue
Block a user