|
|
|
@ -1,21 +1,22 @@
|
|
|
|
|
class HomeworkAttachController < ApplicationController
|
|
|
|
|
include CoursesHelper
|
|
|
|
|
###############################
|
|
|
|
|
#判断当前角色权限时需先找到当前操作的project
|
|
|
|
|
before_filter :find_project_by_bid_id, :only => [:new]
|
|
|
|
|
before_filter :find_project_by_hoemwork_id, :only => [:edit,:update,:destroy,:show,:add_homework_users,:destory_homework_users]
|
|
|
|
|
before_filter :find_course_by_bid_id, :only => [:new]
|
|
|
|
|
before_filter :find_course_by_hoemwork_id, :only => [:edit,:update,:destroy,:show,:add_homework_users,:destory_homework_users]
|
|
|
|
|
#判断当前角色是否有操作权限
|
|
|
|
|
#勿删 before_filter :authorize, :only => [:new,:edit,:update,:destroy]
|
|
|
|
|
|
|
|
|
|
def find_project_by_bid_id
|
|
|
|
|
def find_course_by_bid_id
|
|
|
|
|
@bid = Bid.find(params[:id])
|
|
|
|
|
@project = @bid.courses[0]
|
|
|
|
|
@course = @bid.courses[0]
|
|
|
|
|
rescue ActiveRecord::RecordNotFound
|
|
|
|
|
render_404
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def find_project_by_hoemwork_id
|
|
|
|
|
def find_course_by_hoemwork_id
|
|
|
|
|
@homework = HomeworkAttach.find(params[:id])
|
|
|
|
|
@project = @homework.bid.courses[0]
|
|
|
|
|
@course = @homework.bid.courses[0]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#获取作业的成员
|
|
|
|
@ -35,7 +36,7 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
|
|
|
|
|
#作业添加成员(参与人员)
|
|
|
|
|
def add_homework_users
|
|
|
|
|
if User.current.admin? || User.current.member_of?(@homework.bid.courses.first)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first)
|
|
|
|
|
#@homework = HomeworkAttach.find(params[:id])
|
|
|
|
|
if params[:membership]
|
|
|
|
|
if params[:membership][:user_ids]
|
|
|
|
@ -59,7 +60,7 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
#作业删除成员(参与人员)
|
|
|
|
|
def destory_homework_users
|
|
|
|
|
#@homework = HomeworkAttach.find(params[:id])
|
|
|
|
|
if User.current.admin? || User.current.member_of?(@homework.bid.courses.first)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first)
|
|
|
|
|
homework_user = @homework.homework_users.where("user_id = #{params[:user_id]}").first
|
|
|
|
|
homework_user.destroy
|
|
|
|
|
get_homework_member @homework
|
|
|
|
@ -73,10 +74,19 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def create
|
|
|
|
|
bid = Bid.find params[:bid_id]
|
|
|
|
|
if User.current.admin? || User.current.member_of?(bid.courses.first)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(bid.courses.first) # modify by nwb
|
|
|
|
|
if bid.homeworks.where("user_id = ?",User.current).count == 0
|
|
|
|
|
user_id = params[:user_id]
|
|
|
|
|
bid_id = params[:bid_id]
|
|
|
|
|
if params[:homework_attach]
|
|
|
|
|
if params[:homework_attach][:project_id]
|
|
|
|
|
project_id = params[:homework_attach][:project_id]
|
|
|
|
|
else
|
|
|
|
|
project_id = 0
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
project_id = 0
|
|
|
|
|
end
|
|
|
|
|
sta = 0
|
|
|
|
|
name = params[:new_form][:name]
|
|
|
|
|
description = params[:new_form][:description]
|
|
|
|
@ -85,7 +95,8 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
:state => sta,
|
|
|
|
|
:name => name,
|
|
|
|
|
:description => description,
|
|
|
|
|
:bid_id => bid_id
|
|
|
|
|
:bid_id => bid_id,
|
|
|
|
|
:project_id => project_id
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -97,7 +108,7 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
|
|
|
|
|
if @homework.save
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { redirect_to project_for_bid_path @homework.bid }
|
|
|
|
|
format.html { redirect_to course_for_bid_path @homework.bid }
|
|
|
|
|
format.json { head :no_content }
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
@ -113,7 +124,7 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def new
|
|
|
|
|
@bid = Bid.find(params[:id])
|
|
|
|
|
if User.current.admin? || User.current.member_of?(@bid.courses.first)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(@bid.courses.first) #nwb
|
|
|
|
|
#该课程的学生的集合(新建不实现功能:添加成员)
|
|
|
|
|
#@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]})
|
|
|
|
|
|
|
|
|
@ -138,7 +149,7 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
def get_homework_member_list
|
|
|
|
|
@homework = HomeworkAttach.find(params[:bid_id])
|
|
|
|
|
course = @homework.bid.courses.first
|
|
|
|
|
if User.current.admin? || User.current.member_of?(course)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(course)
|
|
|
|
|
get_homework_member @homework
|
|
|
|
|
else
|
|
|
|
|
raise "error"
|
|
|
|
@ -163,7 +174,7 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def edit
|
|
|
|
|
#@homework = HomeworkAttach.find(params[:id])
|
|
|
|
|
if User.current.admin? || User.current.member_of?(@homework.bid.courses.first)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(@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]})
|
|
|
|
|
get_homework_member @homework
|
|
|
|
|
else
|
|
|
|
@ -174,17 +185,27 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
def update
|
|
|
|
|
#@homework = HomeworkAttach.find(params[:id])
|
|
|
|
|
course = @homework.bid.courses.first
|
|
|
|
|
if User.current.admin? || User.current.member_of?(course)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(course)
|
|
|
|
|
name = params[:homework_name]
|
|
|
|
|
description = params[:homework_description]
|
|
|
|
|
if params[:homework_attach]
|
|
|
|
|
if params[:homework_attach][:project_id]
|
|
|
|
|
project_id = params[:homework_attach][:project_id]
|
|
|
|
|
else
|
|
|
|
|
project_id = 0
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
project_id = 0
|
|
|
|
|
end
|
|
|
|
|
@homework.name = name
|
|
|
|
|
@homework.description = description
|
|
|
|
|
@homework.project_id = project_id
|
|
|
|
|
if params[:attachments]
|
|
|
|
|
@homework.save_attachments(params[:attachments])
|
|
|
|
|
end
|
|
|
|
|
if @homework.save
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { redirect_to project_for_bid_path @homework.bid }
|
|
|
|
|
format.html { redirect_to course_for_bid_path @homework.bid }
|
|
|
|
|
format.json { head :no_content }
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
@ -196,10 +217,10 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def destroy
|
|
|
|
|
#@homework = HomeworkAttach.find(params[:id])
|
|
|
|
|
if User.current.admin? || User.current == @homework
|
|
|
|
|
if User.current.admin? || User.current == @homework.user
|
|
|
|
|
if @homework.destroy
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { redirect_to project_for_bid_path @homework.bid }
|
|
|
|
|
format.html { redirect_to course_for_bid_path @homework.bid }
|
|
|
|
|
format.json { head :no_content }
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
@ -212,7 +233,7 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
#显示作业信息
|
|
|
|
|
def show
|
|
|
|
|
#@homework = HomeworkAttach.find(params[:id])
|
|
|
|
|
if User.current.admin? || User.current.member_of?(@homework.bid.courses.first)
|
|
|
|
|
if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first)
|
|
|
|
|
# 打分统计
|
|
|
|
|
stars_reates = @homework.
|
|
|
|
|
rates(:quality)
|
|
|
|
@ -237,6 +258,9 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
@offset ||= @feedback_pages.offset
|
|
|
|
|
@jour = @jours[@offset, @limit]
|
|
|
|
|
@comprehensive_evaluation = @homework.journals_for_messages.where("is_comprehensive_evaluation is not null").order("created_on DESC")
|
|
|
|
|
|
|
|
|
|
@totle_score = score_for_homework @homework
|
|
|
|
|
@teaher_score = teacher_score_for_homework @homework
|
|
|
|
|
else
|
|
|
|
|
render_403 :message => :notice_not_authorized
|
|
|
|
|
end
|
|
|
|
@ -268,11 +292,24 @@ class HomeworkAttachController < ApplicationController
|
|
|
|
|
@offset ||= @feedback_pages.offset
|
|
|
|
|
@jour = @jours[@offset, @limit]
|
|
|
|
|
@comprehensive_evaluation = @homework.journals_for_messages.where("is_comprehensive_evaluation is not null").order("created_on DESC")
|
|
|
|
|
|
|
|
|
|
@totle_score = score_for_homework @homework
|
|
|
|
|
@teaher_score = teacher_score_for_homework @homework
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#教师综评
|
|
|
|
|
def comprehensive_evaluation_jour
|
|
|
|
|
@homework = HomeworkAttach.find(params[:jour_id])
|
|
|
|
|
@add_jour = @homework.addjours User.current.id, params[:new_form][:user_message],0,params[:is_comprehensive_evaluation]
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { redirect_to homework_attach_path @homework }
|
|
|
|
|
format.json { head :no_content }
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#获取指定作业的平均得分
|
|
|
|
|
def score
|
|
|
|
|
#stars_reates = @homework.rates(:quality)
|
|
|
|
|