You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.5 KiB
29 lines
1.5 KiB
class CourseModule < ApplicationRecord
|
|
default_scope { order("course_modules.position ASC") }
|
|
belongs_to :course
|
|
|
|
# 二级目录
|
|
has_many :course_second_categories
|
|
|
|
validates :module_name, length: { maximum: 20 }
|
|
|
|
scope :not_hidden, -> { where(hidden: 0) }
|
|
scope :graduation_module, -> { where(module_type: "graduation") }
|
|
scope :graduation_module_not_hidden, -> { graduation_module.where(hidden: 0) }
|
|
scope :board_module, -> { where(module_type: 'board') }
|
|
scope :attachment_module, -> { includes(:course_second_categories).where(module_type: 'attachment') }
|
|
scope :common_homework_module, -> { where(module_type: 'common_homework') }
|
|
scope :group_homework_module, -> { where(module_type: 'group_homework') }
|
|
scope :shixun_homework_module, -> { where(module_type: 'shixun_homework') }
|
|
scope :search_by_module_type, -> (type) {where(module_type:type)}
|
|
|
|
# 课堂模块的子目录
|
|
def course_second_categories
|
|
if module_type == "graduation" && CourseSecondCategory.where(course_module_id: self.id).count == 0
|
|
CourseSecondCategory.create!(course_module_id: self.id, course_id: self.course_id, name: "毕设选题", category_type: "graduation", position: 1)
|
|
CourseSecondCategory.create!(course_module_id: self.id, course_id: self.course_id, name: "毕设任务", category_type: "graduation", position: 2)
|
|
end
|
|
CourseSecondCategory.where(course_module_id: self.id)
|
|
end
|
|
end
|