作业的状态过滤

ecloud_sso
cxt 5 years ago
parent b2f53528a0
commit dc30bd9491

@ -70,9 +70,17 @@ class HomeworkCommonsController < ApplicationController
else
case order
when '1'
sql_str = %Q(homework_detail_manuals.comment_status = #{order} and homework_commons.end_time > '#{Time.now}')
unified_homework_ids = @homework_commons.published_no_end.unified_setting.pluck(:id)
group_homework_ids = @course.homework_group_settings.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})
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}'))
unified_homework_ids = @homework_commons.homework_ended.unified_setting.pluck(:id)
group_homework_ids = @course.homework_group_settings.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}'))
when '3'
sql_str = %Q(homework_detail_manuals.comment_status = #{order} and homework_detail_manuals.evaluation_end > '#{Time.now}')
when '4'

@ -47,6 +47,7 @@ class HomeworkCommon < ApplicationRecord
scope :homework_published, -> {where("homework_commons.publish_time IS NOT NULL AND homework_commons.publish_time <= ? ",Time.now)}
scope :published_no_end, -> {where("homework_commons.publish_time IS NOT NULL AND homework_commons.publish_time < ?
and homework_commons.end_time > ?", Time.now, Time.now)}
scope :homework_ended, -> {where("homework_commons.end_time IS NOT NULL AND homework_commons.end_time <= ? ",Time.now)}
scope :search_homework_type, lambda {|num| where(homework_type:num)}
scope :unified_setting, -> {where("unified_setting = ? ", 1)}

@ -7,5 +7,6 @@ class HomeworkGroupSetting < ApplicationRecord
scope :published_no_end, -> {where("homework_group_settings.publish_time IS NOT NULL AND homework_group_settings.publish_time < ?
and homework_group_settings.end_time > ?", Time.now, Time.now)}
scope :none_end, -> {where("homework_group_settings.end_time IS NULL or homework_group_settings.end_time > ?", Time.now)}
scope :has_end, -> {where("homework_group_settings.end_time IS NOT NULL AND homework_group_settings.end_time <= ?", Time.now)}
end

Loading…
Cancel
Save