@ -70,9 +70,25 @@ class HomeworkCommonsController < ApplicationController
else
else
case order
case order
when '1'
when '1'
sql_str = %Q( homework_detail_manuals.comment_status = #{ order } and homework_commons.end_time > ' #{ Time . now } ' )
if @user_course_identity == Course :: STUDENT
unified_homework_ids = @homework_commons . published_no_end . unified_setting . pluck ( :id )
group_homework_ids = @course . homework_group_settings . where ( " course_group_id = #{ @member . course_group_id & . to_i } " ) . published_no_end . pluck ( :homework_common_id )
homework_ids = unified_homework_ids + group_homework_ids
homework_ids = homework_ids . blank? ? " (-1) " : " ( " + homework_ids . join ( " , " ) + " ) "
sql_str = %Q( homework_commons.id in #{ homework_ids } )
else
sql_str = %Q( homework_detail_manuals.comment_status = #{ order } and homework_commons.end_time > ' #{ Time . now } ' )
end
when '2'
when '2'
sql_str = %Q( allow_late = 1 and homework_commons.end_time < ' #{ Time . now } ' and ( late_time is null or late_time > ' #{ Time . now } ' ) )
if @user_course_identity == Course :: STUDENT
unified_homework_ids = @homework_commons . homework_ended . unified_setting . pluck ( :id )
group_homework_ids = @course . homework_group_settings . where ( " course_group_id = #{ @member . course_group_id & . to_i } " ) . has_end . pluck ( :homework_common_id )
homework_ids = unified_homework_ids + group_homework_ids
homework_ids = homework_ids . blank? ? " (-1) " : " ( " + homework_ids . join ( " , " ) + " ) "
sql_str = %Q( homework_commons.id in #{ homework_ids } and allow_late = 1 and ( late_time is null or late_time > ' #{ Time . now } ' ) )
else
sql_str = %Q( allow_late = 1 and homework_commons.end_time < ' #{ Time . now } ' and ( late_time is null or late_time > ' #{ Time . now } ' ) )
end
when '3'
when '3'
sql_str = %Q( homework_detail_manuals.comment_status = #{ order } and homework_detail_manuals.evaluation_end > ' #{ Time . now } ' )
sql_str = %Q( homework_detail_manuals.comment_status = #{ order } and homework_detail_manuals.evaluation_end > ' #{ Time . now } ' )
when '4'
when '4'
@ -87,16 +103,16 @@ class HomeworkCommonsController < ApplicationController
end
end
@task_count = @homework_commons . size
@task_count = @homework_commons . size
order_str = @homework_type == 4 ? " position DESC" : " IF(ISNULL(homework_commons.publish_time),0,1), homework_commons.publish_time DESC,
order_str = @homework_type == 4 ? " homework_commons. position DESC" : " IF(ISNULL(homework_commons.publish_time),0,1), homework_commons.publish_time DESC,
homework_commons . created_at DESC "
homework_commons . created_at DESC "
@homework_commons = @homework_commons . order ( order_str ) . page ( page ) . per ( 15 )
@homework_commons = @homework_commons . order ( order_str ) . page ( page ) . per ( 15 )
if @homework_type == 4
if @homework_type == 4
@homework_commons = @homework_commons . includes ( :homework_detail_manual , :published_settings , : shixuns)
@homework_commons = @homework_commons . includes ( :homework_detail_manual , :published_settings , : homework_group_settings, : shixuns, :course_second_category , user : :user_extension )
elsif @homework_type == 3
elsif @homework_type == 3
@homework_commons = @homework_commons . includes ( :homework_detail_manual , :published_settings , :homework_ detail_group)
@homework_commons = @homework_commons . includes ( :homework_detail_manual , :published_settings , :homework_ group_settings, :homework_ detail_group, :course_second_category , user : :user_extension )
else
else
@homework_commons = @homework_commons . includes ( :homework_detail_manual , :published_settings )
@homework_commons = @homework_commons . includes ( :homework_detail_manual , :published_settings , :homework_group_settings , :course_second_category , user : :user_extension )
end
end
end
end
@ -902,7 +918,8 @@ class HomeworkCommonsController < ApplicationController
def publish_groups
def publish_groups
@current_user = current_user
@current_user = current_user
if @homework . publish_immediately @current_user
charge_ids = @course . charge_group_ids ( @current_user )
if @homework . publish_immediately charge_ids
# 可立即发布的分班:当前用户管理的分班去除已发布的分班
# 可立即发布的分班:当前用户管理的分班去除已发布的分班
group_ids = @course . charge_group_ids ( @current_user ) - @homework . homework_group_settings . group_published . pluck ( :course_group_id )
group_ids = @course . charge_group_ids ( @current_user ) - @homework . homework_group_settings . group_published . pluck ( :course_group_id )
@course_groups = @course . course_groups . where ( id : group_ids )
@course_groups = @course . course_groups . where ( id : group_ids )
@ -983,8 +1000,8 @@ class HomeworkCommonsController < ApplicationController
end
end
homework . homework_detail_manual . update_attributes! ( comment_status : 1 )
homework . homework_detail_manual . update_attributes! ( comment_status : 1 )
if homework . course_act s. size == 0
if homework . course_act . blank?
homework . course_acts << CourseActivity . new ( user_id : homework . user_id , course_id : homework . course_id )
CourseActivity . create! ( user_id : homework . user_id , course_id : homework . course_id , course_act : homework )
end
end
# 发消息
# 发消息
HomeworkCommonPushNotifyJob . perform_later ( homework . id , tiding_group_ids )
HomeworkCommonPushNotifyJob . perform_later ( homework . id , tiding_group_ids )
@ -1031,7 +1048,8 @@ class HomeworkCommonsController < ApplicationController
def end_groups
def end_groups
@current_user = current_user
@current_user = current_user
if @homework . end_immediately @current_user
charge_ids = @course . charge_group_ids ( @current_user )
if @homework . end_immediately charge_ids
# 可立即截止的分班:统一设置则是用户管理的所有分班,否则是当前用户管理的分班中已发布且未截止的
# 可立即截止的分班:统一设置则是用户管理的所有分班,否则是当前用户管理的分班中已发布且未截止的
charge_group_ids = @course . charge_group_ids ( @current_user ) # 当前用户管理的分班
charge_group_ids = @course . charge_group_ids ( @current_user ) # 当前用户管理的分班
group_ids = @homework . unified_setting ? charge_group_ids :
group_ids = @homework . unified_setting ? charge_group_ids :
@ -1045,7 +1063,7 @@ class HomeworkCommonsController < ApplicationController
def end_homework
def end_homework
tip_exception ( " 请至少选择一个分班 " ) if params [ :group_ids ] . blank? && @course . course_groups . size != 0
tip_exception ( " 请至少选择一个分班 " ) if params [ :group_ids ] . blank? && @course . course_groups . size != 0
time = Time . now . strftime ( " %Y-%m-%d %H:%M:%S " )
time = Time . now
# 已发布且未截止的作业才能立即截止
# 已发布且未截止的作业才能立即截止
@ -1086,7 +1104,7 @@ class HomeworkCommonsController < ApplicationController
homework . end_time = time
homework . end_time = time
end
end
homework_detail_manual . update_attributes! ( comment_status : 2 ) if homework . end_time < = time
# homework_detail_manual.update_attributes!(comment_status: 2) if homework.end_time <= time
# 实训作业的作品需要计算是否迟交
# 实训作业的作品需要计算是否迟交
if homework . homework_type == " practice "
if homework . homework_type == " practice "
@ -1117,7 +1135,7 @@ class HomeworkCommonsController < ApplicationController
def choose_category
def choose_category
@main_catrgory = @course . course_modules . where ( module_type : " shixun_homework " )
@main_catrgory = @course . course_modules . where ( module_type : " shixun_homework " )
@homework_category = @main_catrgory . take . course_second_categories
@homework_category = @main_catrgory . take . course_second_categories . includes ( :homework_commons )
end
end
# 实训作业移动到目录
# 实训作业移动到目录
@ -1313,7 +1331,7 @@ class HomeworkCommonsController < ApplicationController
# 最新一次的查重时间
# 最新一次的查重时间
@last_review_time = format_time @homework . homework_group_reviews . last . try ( :created_at )
@last_review_time = format_time @homework . homework_group_reviews . last . try ( :created_at )
@charge_ids = @course . charge_group_ids ( @current_user )
end
end
# 代码查重代码的详情
# 代码查重代码的详情