@ -26,13 +26,39 @@ class HomeworkAttachController < ApplicationController
end
end
end
end
def add_users users
#作业添加成员(参与人员)
if users != nil && users . count > 0
def add_homework_users
users . each do | user |
@homework = HomeworkAttach . find ( params [ :id ] )
@homework . homework_users . build ( :user_id = > user . id )
if params [ :membership ]
if params [ :membership ] [ :user_ids ]
attrs = params [ :membership ] . dup
user_ids = attrs . delete ( :user_ids )
user_ids . each do | user_id |
@homework . homework_users . build ( :user_id = > user_id )
end
end
end
@homework . save
@homework . save
@hoemwork_users = users_for_homework ( @homework )
@members = members_for_homework ( @homework , @hoemwork_users )
@members = paginateHelper @members , 10
respond_to do | format |
format . js
end
end
end
end
#作业删除成员(参与人员)
def destory_homework_users
@homework = HomeworkAttach . find ( params [ :id ] )
homework_user = @homework . homework_users . where ( " user_id = #{ params [ :user_id ] } " ) . first
homework_user . destroy
@hoemwork_users = users_for_homework ( @homework )
@members = members_for_homework ( @homework , @hoemwork_users )
@members = paginateHelper @members , 10
respond_to do | format |
format . js
end
end
end
def create
def create
@ -78,10 +104,10 @@ class HomeworkAttachController < ApplicationController
def new
def new
@bid = Bid . find ( params [ :id ] )
@bid = Bid . find ( params [ :id ] )
if User . current . admin? || User . current . member_of? ( @bid . courses . first )
if User . current . admin? || User . current . member_of? ( @bid . courses . first )
#该课程的学生的集合
#该课程的学生的集合 (新建不实现功能:添加成员)
@members = @bid . courses . first . members . joins ( :member_roles ) . where ( " member_roles.role_id IN (:role_id) and user_id <> #{ User . current . id } " , { :role_id = > [ 5 , 10 ] } )
#@members = @bid.courses.first.members.joins(:member_roles).where(" member_roles.role_id IN (:role_id) and user_id <> #{User.current.id}", {:role_id => [5, 10]})
@members = paginateHelper @members , 10
#@members = paginateHelper @members,10
#@all_user = []
#@all_user = []
#@bid.courses.first.members.each do |member|
#@bid.courses.first.members.each do |member|
# @all_user << member.user
# @all_user << member.user
@ -98,38 +124,43 @@ class HomeworkAttachController < ApplicationController
end
end
end
end
#获取作业成员的集合
def get_homework_member_list
def get_homework_member_list
@bid = Bid . find ( params [ :bid_id ] )
@homework = HomeworkAttach . includes ( :homework_users ) . includes ( :user ) . find ( params [ :bid_id ] )
if User . current . admin? || User . current . member_of? ( @bid . courses . first )
course = @homework . bid . courses . first
if User . current . admin? || User . current . member_of? ( course )
@hoemwork_users = users_for_homework ( @homework )
@members = members_for_homework ( @homework , @hoemwork_users )
#该课程的学生的集合
#该课程的学生的集合
@members = @bid . courses . first . members . joins ( :member_roles ) . where ( " member_roles.role_id IN (:role_id) and user_id <> #{ User . current . id } " , { :role_id = > [ 5 , 10 ] } )
#@members = course.members.joins(:member_roles).where("member_roles.role_id IN (:role_id)", {:role_id => [5, 10]})
@members = paginateHelper @members , 10
@members = paginateHelper @members , 10
else
else
raise " error "
raise " error "
end
end
respond_to do | format |
respond_to do | format |
format . js
format . js
end
end
end
end
#获取指定作业的所有成员
#获取指定作业的所有成员
def members_for_homework homework
def users_for_homework homework
people = [ ]
homework . nil? ? [ ] : ( homework . users + [ homework . user ] )
if homework != nil
people << homework . user
homework . homework_users do | homework_user |
people << homework_user . user
end
end
else
end
#获取可选成员列表
people
#homework: 作业
#users: 该作业所有成员
def members_for_homework homework , users
homework . bid . courses . first . members . joins ( :member_roles ) . where ( " member_roles.role_id IN (:role_id) and user_id not in (:users) " , { :role_id = > [ 5 , 10 ] , :users = > users } )
end
end
def edit
def edit
@homework = HomeworkAttach . find( params [ :id ] )
@homework = HomeworkAttach . includes( :homework_users ) . includes ( :user ) . find( params [ :id ] )
if User . current . admin? || User . current . member_of? ( @homework . bid . courses . first )
if User . current . admin? || User . current . member_of? ( @homework . bid . courses . first )
#@members = @homework.bid.courses.first.members.joins(:member_roles).where("member_roles.role_id IN (:role_id)", {:role_id => [5, 10]})
@hoemwork_users = users_for_homework ( @homework )
@members = members_for_homework ( @homework , @hoemwork_users )
@members = paginateHelper @members , 10
else
else
render_403 :message = > :notice_not_authorized
render_403 :message = > :notice_not_authorized
end
end
@ -137,7 +168,8 @@ class HomeworkAttachController < ApplicationController
def update
def update
@homework = HomeworkAttach . find ( params [ :id ] )
@homework = HomeworkAttach . find ( params [ :id ] )
if User . current . admin? || User . current . member_of? ( @homework . bid . courses . first )
course = @homework . bid . courses . first
if User . current . admin? || User . current . member_of? ( course )
name = params [ :homework_name ]
name = params [ :homework_name ]
description = params [ :homework_description ]
description = params [ :homework_description ]
@homework . name = name
@homework . name = name