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.
pgfqe6ch8/app/controllers/ecs_controller.rb

77 lines
2.7 KiB

class EcsController < ApplicationController
before_filter :require_login, :except => [:get_navigation_url]
before_filter :find_school, :except => [:get_navigation_url]
before_filter :school_manager, :except => [:department, :get_navigation_url]
layout 'base_ec'
def department
@template_major = EcMajorSchool.where(:template_major => true).first
@school_managers = @school.users
@is_school_manager = User.current.admin? || User.current.business? || @school.users.where(:id => User.current.id).count > 0 # 学校管理员
@major_schools = @school.ec_major_schools.where(:template_major => false)
unless @is_school_manager
ec_major_school_ids = EcMajorSchoolUser.where(:user_id => User.current.id).pluck(:ec_major_school_id)
ec_course_major_ids = EcYear.where(:id => EcCourse.where(:id => EcCourseUser.where(:user_id => User.current.id).pluck(:ec_course_id)).pluck(:ec_year_id)).pluck(:ec_major_school_id)
@major_schools = @major_schools.where(:id => (ec_major_school_ids + ec_course_major_ids).uniq)
end
@major_count = @major_schools.count
if !@is_school_manager && @major_count == 0
render_403
else
if params[:search].present?
major_ids = EcMajor.where("name like '%#{params[:search]}%' or code like '%#{params[:search]}%'").pluck(:id)
@major_schools = @major_schools.where(:ec_major_id => major_ids)
end
@obj_count = @major_schools.count
@limit = 10
@is_remote = true
@obj_pages = Paginator.new @obj_count, @limit, params['page'] || 1
@offset ||= @obj_pages.offset
@major_schools = paginateHelper @major_schools, @limit
respond_to do |format|
format.js
format.html
end
end
end
# 搜索专业
def search_major
@major_ids = @school.ec_majors.pluck(:id)
# 去除已经添加的专业
@majors = EcMajor.where("(concat(name, code) like '%#{params[:search]}%')").limit(10)
end
# 添加专业
def add_major
major_ids = params[:major_ids]
major_ids.each do |id|
EcMajorSchool.create(ec_major_id: id, school_id: params[:school_id])
end
render :json => {status: 1}
end
# 获取工程认证头部url
# GET: /ecs/get_navigation_url
def get_navigation_url
ec_url = "#{department_ecs_path(:school_id => User.current.ec_school)}" if User.current.ec_school.present?
render :json => {ec_url: ec_url, project_packages_url: "/crowdsourcing" }
end
private
def find_school
@school = School.find(params[:school_id])
end
def school_manager
unless User.current.admin? || User.current.business? || @school.users.where(:id => User.current.id).count > 0
render_403
end
end
end