Merge pull request #248 from openHPI/improve_groups

Improve groups with a view and always create a group
This commit is contained in:
rteusner
2018-12-19 13:57:41 +01:00
committed by GitHub
14 changed files with 173 additions and 11 deletions

View File

@@ -161,8 +161,11 @@ module Lti
def set_study_group_membership
return if mooc_course
group = StudyGroup.find_or_create_by(external_id: @provider.resource_link_id, consumer: @consumer)
if mooc_course
group = StudyGroup.find_or_create_by(name: @provider.context_title, external_id: @provider.context_id, consumer: @consumer)
else
group = StudyGroup.find_or_create_by(external_id: @provider.resource_link_id, consumer: @consumer)
end
group.users |= [@current_user] # add current user if not already member of the group
group.save
end

View File

@@ -0,0 +1,48 @@
class StudyGroupsController < ApplicationController
include CommonBehavior
before_action :set_group, only: MEMBER_ACTIONS
def index
@search = StudyGroup.search(params[:q])
@study_groups = @search.result.includes(:consumer).order(:name).paginate(page: params[:page])
authorize!
end
def show
@search = @study_group.users.search(params[:q])
end
def edit
@search = @study_group.users.search(params[:q])
@members = StudyGroupMembership.where(user: @search.result)
end
def update
myparams = study_group_params
myparams[:users] = StudyGroupMembership.find(myparams[:study_group_membership_ids].reject(&:empty?)).map(&:user)
myparams.delete(:study_group_membership_ids)
update_and_respond(object: @study_group, params: myparams)
end
def destroy
destroy_and_respond(object: @study_group)
end
def study_group_params
params[:study_group].permit(:id, :name, :study_group_membership_ids => []) if params[:study_group].present?
end
private :study_group_params
def set_group
@study_group = StudyGroup.find(params[:id])
authorize!
end
private :set_group
def authorize!
authorize(@study_groups || @study_group)
end
private :authorize!
end