@ -2,6 +2,7 @@ class CoursesService
include ApplicationHelper
include ApplicationHelper
include CoursesHelper
include CoursesHelper
include HomeworkAttachHelper
include HomeworkAttachHelper
include ApiHelper
#TODO:尚未整合权限系统
#TODO:尚未整合权限系统
#参数school_id为0或不传时返回所有课程, 否则返回对应学校的课程
#参数school_id为0或不传时返回所有课程, 否则返回对应学校的课程
#参数per_page_count分页功能, 每页显示的课程数
#参数per_page_count分页功能, 每页显示的课程数
@ -106,11 +107,14 @@ class CoursesService
end
end
#课程通知列表
#课程通知列表
def course_news_list params
def course_news_list params , current_user
if params [ :course_id ] && @course == nil
if params [ :course_id ] && @course == nil
@course = Course . find ( params [ :course_id ] )
@course = Course . find ( params [ :course_id ] )
end
end
scope = @course ? @course . news . course_visible : News . course_visible
if current_user . nil? || ! ( current_user . admin? || @course . is_public == 1 || ( @course . is_public == 0 && current_user . member_of_course? ( @course ) ) )
raise '403'
end
scope = @course ? @course . news . course_visible ( current_user ) : News . course_visible ( current_user )
news = [ ]
news = [ ]
scope . each do | n |
scope . each do | n |
news << { :title = > n . title , :author_name = > n . author . name , :author_id = > n . author . id , :description = > n . description , :created_on = > format_time ( n . created_on ) , :comments_count = > n . comments_count }
news << { :title = > n . title , :author_name = > n . author . name , :author_id = > n . author . id , :description = > n . description , :created_on = > format_time ( n . created_on ) , :comments_count = > n . comments_count }
@ -128,9 +132,16 @@ class CoursesService
#显示课程通知(包括评论) 需验证权限
#显示课程通知(包括评论) 需验证权限
def show_course_news params , current_user
def show_course_news params , current_user
@news = News . find ( params [ :id ] )
@news = News . find ( params [ :id ] )
@course = @news . course
if @course
if current_user . nil? || ! ( current_user . admin? || @course . is_public == 1 || ( @course . is_public == 0 && current_user . member_of_course? ( @course ) ) )
raise '403'
end
end
@comments = @news . comments
@comments = @news . comments
@comments . reverse! if current_user . wants_comments_in_reverse_order?
@comments . reverse! if current_user . wants_comments_in_reverse_order?
{ :news = > @news , :comments = > @comments }
{ :news = > @news , :comments = > @comments }
#comments = []
#comments = []
#@comments.each do |comment|
#@comments.each do |comment|
# comments << {:author_id => comment.author_id,:author_name => comment.author.name,:commont_content => comment.comments,:time => format_time(comment.created_on)}
# comments << {:author_id => comment.author_id,:author_name => comment.author.name,:commont_content => comment.comments,:time => format_time(comment.created_on)}
@ -316,6 +327,22 @@ class CoursesService
end
end
end
end
def course_dynamic ( params , current_user )
course = Course . find ( params [ :id ] )
if current_user . nil? || ! ( current_user . admin? || course . is_public == 1 || ( course . is_public == 0 && current_user . member_of_course? ( course ) ) )
raise '403'
end
count , is_teacher = get_course_anonymous_evaluation current_user , course
if is_teacher
student_commit_number = count
else
need_anonymous_comments_count = count
end
news_count = course . news . count
message_count = course . journals_for_messages . count
{ :course_name = > course . name , :need_anonymous_comments_count = > need_anonymous_comments_count , :student_commit_number = > student_commit_number , :news_count = > news_count , :message_count = > message_count }
end
private
private
def show_homework_info course , bid , current_user , is_course_teacher
def show_homework_info course , bid , current_user , is_course_teacher
author = bid . author . lastname + bid . author . firstname
author = bid . author . lastname + bid . author . firstname
@ -351,4 +378,6 @@ class CoursesService
:description = > description , :homework_state = > state , :open_anonymous_evaluation = > open_anonymous_evaluation }
:description = > description , :homework_state = > state , :open_anonymous_evaluation = > open_anonymous_evaluation }
end
end
end
end