|
|
|
@ -26,7 +26,7 @@ class CoursesController < ApplicationController
|
|
|
|
|
:base_info, :get_historical_courses, :create_group_by_importing_file,
|
|
|
|
|
:attahcment_category_list,:export_member_scores_excel, :duplicate_course,
|
|
|
|
|
:switch_to_teacher, :switch_to_assistant, :switch_to_student, :exit_course,
|
|
|
|
|
:informs, :update_informs, :online_learning, :update_task_position, :tasks_list]
|
|
|
|
|
:informs, :update_informs, :online_learning, :update_task_position, :tasks_list, :join_excellent_course]
|
|
|
|
|
before_action :user_course_identity, except: [:join_excellent_course, :index, :create, :new, :apply_to_join_course,
|
|
|
|
|
:search_course_list, :get_historical_course_students, :mine, :search_slim]
|
|
|
|
|
before_action :teacher_allowed, only: [:update, :destroy, :settings, :search_teacher_candidate,
|
|
|
|
@ -158,6 +158,8 @@ class CoursesController < ApplicationController
|
|
|
|
|
@course.subject.subject_members.where.not(user_id: current_user.id).each do |s_member|
|
|
|
|
|
CourseMember.create!(course_id: @course.id, user_id: s_member.user_id, role: 2)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
Inform.create(container: @course, description: @subject.learning_notes)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
course_module_types = params[:course_module_types]
|
|
|
|
@ -179,7 +181,7 @@ class CoursesController < ApplicationController
|
|
|
|
|
extra_params = Hash.new
|
|
|
|
|
extra_params[:school_id] = @school.id
|
|
|
|
|
|
|
|
|
|
if @course.is_end && (course_params[:end_date].blank? || course_params[:end_date].to_date > Date.today)
|
|
|
|
|
if @course.is_end && (course_params[:end_date].blank? || course_params[:end_date].to_date >= Date.today)
|
|
|
|
|
extra_params[:is_end] = 0
|
|
|
|
|
elsif !@course.is_end && !course_params[:end_date].blank? && course_params[:end_date].to_date < Date.today
|
|
|
|
|
extra_params[:is_end] = 1
|
|
|
|
@ -1193,8 +1195,8 @@ class CoursesController < ApplicationController
|
|
|
|
|
@subject = @course.present? ? @course.subject : Subject.find_by!(id: params[:subject_id])
|
|
|
|
|
tip_exception("开始时间不能为空") if params[:start_date].blank?
|
|
|
|
|
tip_exception("结束时间不能为空") if params[:end_date].blank?
|
|
|
|
|
tip_exception("结束时间必须晚于开始时间") if params[:end_date] <= params[:start_date]
|
|
|
|
|
tip_exception("开始时间和结束时间不能与往期开课时间重叠") if @course.nil? && @subject.max_course_end_date && params[:start_date] <= strf_date(@subject.max_course_end_date)
|
|
|
|
|
tip_exception("结束时间必须晚于开始时间") if strf_date(params[:end_date]) <= strf_date(params[:start_date])
|
|
|
|
|
tip_exception("开始时间和结束时间不能与往期开课时间重叠") if @course.nil? && @subject.max_course_end_date && strf_date(params[:start_date]) <= strf_date(@subject.max_course_end_date)
|
|
|
|
|
validate_start_end_date if @course.present?
|
|
|
|
|
tip_exception("开放课堂必须包含公告栏和在线学习模块") unless params[:course_module_types].include?("announcement") && params[:course_module_types].include?("online_learning")
|
|
|
|
|
end
|
|
|
|
@ -1206,8 +1208,8 @@ class CoursesController < ApplicationController
|
|
|
|
|
def validate_start_end_date
|
|
|
|
|
prev_course = @subject.courses.where("id < #{@course.id}").last
|
|
|
|
|
next_course = @subject.courses.where("id > #{@course.id}").first
|
|
|
|
|
tip_exception("开始时间不能与往期开课时间重叠") if prev_course && params[:start_date] <= strf_date(prev_course.end_date)
|
|
|
|
|
tip_exception("结束时间不能与后期开课时间重叠") if next_course && params[:end_date] >= strf_date(next_course.start_date)
|
|
|
|
|
tip_exception("开始时间不能与往期开课时间重叠") if prev_course && strf_date(params[:start_date]) <= strf_date(prev_course.end_date)
|
|
|
|
|
tip_exception("结束时间不能与后期开课时间重叠") if next_course && strf_date(params[:end_date]) >= strf_date(next_course.start_date)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 超级管理员和课堂管理员的权限判断
|
|
|
|
|