@ -669,8 +669,8 @@ class CoursesService
homework_count = course . homework_commons . count
unless homework_count == 0
sql = " select users.*,sum(IFNULL(0,student_works.final_score))/ #{ homework_count } score from student_works left outer join users on student_works.user_id = users.id " <<
" where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{ course . id } ) GROUP BY student_works.user_id ORDER BY score limit 0, 5 "
latest_course_dynamics << { :type = > 6 , :time = > Time . now . to_s , :count = > 5 , :better_students = > User . find_by_sql ( sql ) }
" where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{ course . id } ) GROUP BY student_works.user_id ORDER BY score limit 0, 6 "
latest_course_dynamics << { :type = > 6 , :time = > Time . now . to_s , :count = > 6 , :better_students = > User . find_by_sql ( sql ) }
dynamics_count += 1
end
# 课程通知
@ -682,19 +682,19 @@ class CoursesService
end
# 课程讨论区
latest_message = course . boards . first . topics . page ( 1 ) . per ( 2 )
unless latest_message . first . nil?
latest_course_dynamics << { :type = > 2 , :time = > latest_message . first . created_on , :count = > course . boards . nil? ? 0 : course . boards . first . topics . count ,
:topics = > latest_message . all }
dynamics_count += 1
end
# latest_message = course.boards.first.topics.page(1).per(2 )
# unless latest_message.first. nil?
# latest_course_dynamics << {:type => 2, :time => latest_message.first.created_on, :count =>course.boards.nil? ? 0 : course.boards.first.topics.count ,
# :topics => latest_message.all }
# dynamics_count += 1
# end
# 课程资源
latest_attachment = course . attachments . order ( " created_on desc " ) . page ( 1 ) . per ( 2 )
unless latest_attachment . first . nil?
latest_course_dynamics << { :type = > 3 , :time = > latest_attachment . first . created_on , :count = > course . attachments . count , :documents = > latest_attachment }
dynamics_count += 1
end
# latest_attachment = course.attachments.order("created_on desc").page(1).per(2 )
# unless latest_attachment.first. nil?
# latest_course_dynamics << {:type => 3, :time => latest_attachment.first.created_on,:count =>course.attachments.count , :documents=>latest_attachment }
# dynamics_count += 1
# end
#课程作业 已经交的学生列表( 暂定显示6人) , 未交的学生列表, 作业的状态
homeworks = course . homework_commons . page ( 1 ) . per ( 2 ) . order ( 'created_at desc' )
@ -722,5 +722,35 @@ class CoursesService
User . find_by_sql ( sql )
end
# 获取某次作业的所有作业列表
def student_work_list params , current_user
is_teacher = User . current . allowed_to? ( :as_teacher , Course . find ( params [ :course_id ] ) )
homework = HomeworkCommon . find ( params [ :homework_id ] )
student_works = [ ]
#老师 || 非匿评作业 || 匿评结束 显示所有的作品
show_all = is_teacher || homework . homework_type != 1 || homework . homework_detail_manual . comment_status == 3
if show_all
if homework . homework_type == 1 || is_teacher || current_user . admin?
student_works = homework . student_works . page ( params [ :page ] || 1 ) . per ( 10 ) . order ( " final_score desc " )
else
my_work = homework . student_works . where ( :user_id = > current_user . id )
if my_work . empty?
student_works = [ ]
else
student_works = homework . student_works . page ( params [ :page ] || 1 ) . per ( 10 ) . order ( " final_score desc " )
end
end
else #学生
if homework . homework_detail_manual . comment_status == 1 #未开启匿评,只显示我的作品
student_works = homework . student_works . where ( :user_id = > current_user . id ) . page ( params [ :page ] || 1 ) . per ( 10 )
elsif homework . homework_detail_manual . comment_status == 2 #匿评列表,显示匿评作品和我的作品
#is_evaluation = true
my_work = homework . student_works . where ( :user_id = > current_user . id ) . page ( params [ :page ] || 1 ) . per ( 10 )
student_works = my_work + current_user . student_works_evaluation_distributions . map ( & :student_work ) . select { | work | work . homework_common_id == homework . id }
end
end
student_works
end
end