class Admins::LaboratorySubjectsController < Admins::BaseController helper_method :current_laboratory, :current_laboratory_subject def index laboratory_subjects = Admins::LaboratorySubjectQuery.call(current_laboratory, params) includes_tables = { subject: [:repertoire, :subject_level_system, user: {user_extension: :school}] } @laboratory_subjects = paginate(laboratory_subjects.includes(includes_tables)) end def create subject = Subject.find(params[:subject_id]) Subjects::CopySubjectService.call(subject, current_user, current_laboratory) render_ok end def destroy return render_js_error('不能删除自建课程', type: :notify) if current_laboratory_subject.ownership? ActiveRecord::Base.transaction do current_subject = current_laboratory_subject.subject # 实训软删除,并解除与子站的关联 current_laboratory.laboratory_shixuns.where(shixun_id: current_subject.shixuns).destroy_all current_subject.shixuns.update_all(status: -1) current_subject.destroy! render_delete_success end end def homepage current_laboratory_subject.update!(homepage: true) render_ok end def cancel_homepage current_laboratory_subject.update!(homepage: false) render_ok end private def current_laboratory @_current_laboratory ||= Laboratory.find(params[:laboratory_id]) end def current_laboratory_subject @_current_laboratory_subject ||= current_laboratory.laboratory_subjects.find(params[:id]) end end