@ -1,6 +1,7 @@
class CoursesService
include ApplicationHelper
include CoursesHelper
include HomeworkAttachHelper
#TODO:尚未整合权限系统
#参数school_id为0或不传时返回所有课程, 否则返回对应学校的课程
#参数per_page_count分页功能, 每页显示的课程数
@ -306,10 +307,8 @@ class CoursesService
bids = course . homeworks . order ( 'deadline DESC' )
bids = bids . like ( params [ :name ] ) if params [ :name ] . present?
homeworks = [ ]
if is_course_teacher ( current_user , course )
bids . each do | bid |
homeworks << show_homework_info ( course , bid )
end
bids . each do | bid |
homeworks << show_homework_info ( course , bid , current_user , is_course_teacher ( current_user , course ) )
end
homeworks
else
@ -318,7 +317,7 @@ class CoursesService
end
private
def show_homework_info course , bid
def show_homework_info course , bid , current_user , is_course_teacher
author = bid . author . lastname + bid . author . firstname
many_times = course . homeworks . index ( bid ) + 1
name = bid . name
@ -327,8 +326,27 @@ class CoursesService
description = bid . description
#if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2
state = bid . comment_status
unless is_course_teacher
homework_for_anonymous_comments = get_student_batch_homework_list bid , current_user
end
#end
open_anonymous_evaluation = bid . open_anonymous_evaluation
{ :course_name = > course . name , :id = > bid . id , :course_teacher = > author , :homework_times = > many_times , :homework_name = > name , :homework_count = > homework_count , :student_questions_count = > student_questions_count ,
:description = > description , :homework_state = > state , :open_anonymous_evaluation = > open_anonymous_evaluation , :homework_for_anonymous_comments = > homework_for_anonymous_comments }
end
#显示作业列表的同时显示分配给当前学生匿评的作业
def show_homework_info_with_batch course , bid
author = bid . author . lastname + bid . author . firstname
many_times = course . homeworks . index ( bid ) + 1
name = bid . name
homework_count = bid . homeworks . count #已提交的作业数量
student_questions_count = bid . commit . nil? ? 0 : bid . commit
description = bid . description
#if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2
state = bid . comment_status
#end
open_anonymous_evaluation = bid . open_anonymous_evaluation
{ :course_name = > course . name , :id = > bid . id , :course_teacher = > author , :homework_times = > many_times , :homework_name = > name , :homework_count = > homework_count , :student_questions_count = > student_questions_count ,
:description = > description , :homework_state = > state , :open_anonymous_evaluation = > open_anonymous_evaluation }
end