mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-03 03:40:49 +08:00
init project
This commit is contained in:
68
app/controllers/course_modules_controller.rb
Normal file
68
app/controllers/course_modules_controller.rb
Normal file
@@ -0,0 +1,68 @@
|
||||
class CourseModulesController < ApplicationController
|
||||
before_action :require_login, :check_auth
|
||||
before_action :set_module, except: [:unhidden_modules]
|
||||
before_action :find_course, only: [:unhidden_modules]
|
||||
before_action :teacher_or_admin_allowed, except: [:add_second_category]
|
||||
before_action :teacher_allowed, only: [:add_second_category]
|
||||
|
||||
# 模块置顶
|
||||
def sticky_module
|
||||
# position为1则不做处理,否则该模块的position置为1,position小于当前模块的position加1
|
||||
unless @course_module.position == 1
|
||||
@course.course_modules.where("position < #{@course_module.position}").update_all("position = position + 1")
|
||||
@course_module.update_attributes(position: 1)
|
||||
end
|
||||
normal_status(0, "置顶成功")
|
||||
end
|
||||
|
||||
# 模块隐藏
|
||||
def hidden_module
|
||||
tip_exception("请至少保留一个课堂模块") if @course.none_hidden_course_modules.where.not(id: @course_module.id).size == 0
|
||||
@course_module.update_attributes(hidden: 1)
|
||||
normal_status(0, "更新成功")
|
||||
end
|
||||
|
||||
# 模块重命名
|
||||
def rename_module
|
||||
name = params[:name].strip
|
||||
tip_exception("名称不能为空") if name.blank?
|
||||
tip_exception("已存在同名模块") if @course.course_modules.exists?(module_name: name)
|
||||
@course_module.update_attributes(module_name: name)
|
||||
|
||||
case @course_module.module_type
|
||||
when 'board'
|
||||
@course.course_board.update_columns(name: name)
|
||||
end
|
||||
normal_status(0, "更新成功")
|
||||
end
|
||||
|
||||
# 模块的显示
|
||||
def unhidden_modules
|
||||
tip_exception("请选择要显示的模块") if params[:module_ids].blank?
|
||||
@course.course_modules.where(id: params[:module_ids]).update_all(hidden: 0)
|
||||
normal_status(0, "更新成功")
|
||||
end
|
||||
|
||||
# 添加二级目录
|
||||
def add_second_category
|
||||
tip_exception("子目录名称不能为空") if params[:name].blank?
|
||||
tip_exception("已存在同名子目录") if @course_module.course_second_categories.exists?(name: params[:name].strip)
|
||||
ActiveRecord::Base.transaction do
|
||||
begin
|
||||
category = @course_module.course_second_categories.create!(name: params[:name].strip, category_type: @course_module.module_type,
|
||||
course_id: @course.id, position: @course_module.course_second_categories.count + 1)
|
||||
render :json => {category_id: category.id, status: 0, message: "添加成功"}
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception("添加子目录失败")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_module
|
||||
@course_module = CourseModule.find_by!(id: params[:id])
|
||||
@course = @course_module.course
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user