educoder/app/controllers/managements_controller.rb

1194 lines
48 KiB
Ruby
Raw Normal View History

2017-07-13 15:05:10 +08:00
# encoding: utf-8
class ManagementsController < ApplicationController
before_filter :require_admin
layout 'base_management'
include ManagementsHelper
include SortHelper
include UsersHelper
include ApplicationHelper
2017-08-24 17:32:05 +08:00
# 镜像管理
def mirror_repository
@menu_type = 3
@sub_type = 4
@mirror_types = MirrorType.where("0=0")
mirror_rep = Redmine::Configuration['mirror_rep']
uri = "#{mirror_rep}/images/json"
uri = URI.parse(URI.encode(uri.strip))
2017-08-25 15:50:00 +08:00
begin
res = Net::HTTP.get(uri)
res = JSON.parse(res)
res.each do |mirror|
mirrorID = mirror['Id'][7, 12]
if MirrorRepository.where(:mirrorID => mirrorID).count == 0
MirrorRepository.create(:mirrorID => mirrorID, :status => 0, :created_at => Time.at(mirror['Created']), :updated_at => Time.at(mirror['Created']))
end
2017-08-24 17:32:05 +08:00
end
2017-08-25 15:50:00 +08:00
rescue
2017-08-24 17:32:05 +08:00
end
2017-08-25 15:50:00 +08:00
@mirrors = MirrorRepository.where("0=0").reorder("updated_at desc")
2017-08-24 17:32:05 +08:00
end
def add_mirror_type
data = {result: 0}
if params[:name]
if MirrorType.where(:name => params[:name]).count == 0
new_type = MirrorType.new(:user_id => User.current.id, :name => params[:name])
if new_type.save
data[:result] = 1
end
else
data[:result] = 2
end
end
render :json => data
end
def modify_mirror
2017-08-25 15:50:00 +08:00
@mirror = MirrorRepository.find params[:mirror_id]
2017-08-24 17:32:05 +08:00
@mirror_types = MirrorType.where("0=0")
end
def search_mirror_type
data = {mirror_types: []}
search = params[:search]
MirrorType.where("name like '%#{search}%'").each do |mirror_type|
option = []
option << mirror_type.name.to_s
option << mirror_type.id
data[:mirror_types] << option
end
render :json => data
end
def update_mirror
data = {result: 0, ID:""}
begin
mirror = MirrorRepository.find params[:mirror_id]
if mirror
last_index = params[:main_type].strip().rindex(";");
params[:main_type] = last_index.nil? ? "" : params[:main_type].strip()[0 ... last_index]
if params[:main_type] != ""
2017-08-25 20:19:32 +08:00
# 判断镜像主类别和小类别是否重复
if MirrorRepository.where("id != #{mirror.id} and main_type = '#{params[:main_type]}' and tag = '#{params[:tag].strip()}'").count > 0
2017-08-24 17:32:05 +08:00
data[:result] = 1
data[:ID] = MirrorRepository.where("id != #{mirror.id} and main_type = #{params[:main_type]} and tag = #{params[:tag].strip()}").first.mirrorID
else
main_types = params[:main_type].split(";")
2017-08-25 20:19:32 +08:00
main_name = main_types.join('-')
data_tag = params[:tag].strip().gsub(/;/, '-')
# 更改tag
mirror_rep = Redmine::Configuration['mirror_rep']
uri = "#{mirror_rep}/images/"+mirror.mirrorID.to_s+"/tag"
params = {repo: "#{main_name}", tag: "#{data_tag}"}
uri = URI.parse(URI.encode(uri.strip))
res = Net::HTTP.post_form(uri, params).body
if res == ""
# 删除原tag
del_mirror_name = mirror.main_name.to_s + ":" + mirror.tag.gsub(/;/, '-').to_s
del_uri = "#{mirror_rep}/images/" + del_mirror_name
del_res = delete_mirror_http del_uri
if del_res.code == '200'
# 同步更新数据库的记录
transaction do
mirror.mirror_repository_types.destroy_all
main_types.each do |type|
mirror_tp = MirrorType.where(:name => type).first
if mirror_tp
MirrorRepositoryType.create(:mirror_type_id => mirror_tp.id, :mirror_repository_id => mirror.id)
end
end
MirrorUpdateRecord.create(:user_id => User.current.id, :mirror_repository_id => mirror.id, :newDescription => params[:description], :oldDescription => mirror.description,
:newName => main_name, :oldName => mirror.name, :newStatus => params[:status], :oldStatus => mirror.status, :newTag => params[:tag], :oldTag => mirror.tag, :newType => params[:main_type], :oldType => mirror.main_type)
mirror.update_attributes(:name => main_name, :main_type => params[:main_type], :tag => params[:tag], :description => params[:description], :status => params[:status])
end
else
# 删除失败则删除新加的tag
del_mirror_name = main_name.to_s + ":" + data_tag
del_uri = "#{mirror_rep}/images/" + del_mirror_name
del_res = delete_mirror_http del_uri
data[:result] = 4
2017-08-24 17:32:05 +08:00
end
2017-08-25 20:19:32 +08:00
else
logger.error(res['message'])
data[:result] = 4
2017-08-24 17:32:05 +08:00
end
end
else
data[:result] = 2
end
else
data[:result] = 3
end
rescue Exception => e
puts e
end
render :json => data
end
2017-08-25 15:50:00 +08:00
def delete_mirror
mirror = MirrorRepository.find params[:mirror_id]
mirror_rep = Redmine::Configuration['mirror_rep']
uri = "#{mirror_rep}/images/" + mirror.mirrorID.to_s
uri = URI.parse(URI.encode(uri.strip))
data = {name:mirror.mirrorID.to_s}
http = Net::HTTP.new uri.host, uri.port
begin
req = Net::HTTP::Delete.new(uri.request_uri)
req.form_data = data
res= http.start { |http| http.request req }
if res.code == '200'
@status = 1
mirror.destroy
else
@status = 0
end
rescue =>err
end
end
2017-07-28 15:27:34 +08:00
# 专业列表
def profession
2017-08-25 16:11:35 +08:00
@major=Major.where("0=0")
2017-08-11 11:27:04 +08:00
@menu_type = 12
@sub_type = 1
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order]
major_level_option = params[:major_level] if params[:major_level]
discipline_category_option = params[:discipline_category_id] if params[:discipline_category_id]
first_level_discipline_option = params[:first_level_discipline_id] if params[:first_level_discipline_id]
if major_level_option && major_level_option != '0'
2017-08-27 11:18:18 +08:00
@major = @major.where(:major_level => major_level_option)
2017-07-28 15:27:34 +08:00
end
2017-08-11 11:27:04 +08:00
if discipline_category_option && discipline_category_option != '0'
2017-08-27 11:18:18 +08:00
@major=@major.where(:discipline_category_id => discipline_category_option)
2017-07-28 15:27:34 +08:00
end
2017-08-11 11:27:04 +08:00
if first_level_discipline_option && first_level_discipline_option != '0'
2017-08-27 11:18:18 +08:00
@major=@major.where(:first_level_discipline_id => first_level_discipline_option)
2017-07-28 15:27:34 +08:00
end
if params[:support_shixuns]
2017-08-27 11:18:18 +08:00
@major = @major.where(:support_shixuns => params[:support_shixuns].to_i, :major_level => 2)
end
2017-08-25 16:11:35 +08:00
@major = @major.order("created_at #{@sx_order}")
@major_count = @major.count
2017-07-28 15:27:34 +08:00
limit = 20
@is_remote = true
2017-08-25 16:11:35 +08:00
@major_pages = Paginator.new @major_count, limit, params['page'] || 1
@offset ||= @major_pages.offset
@major = paginateHelper @major, limit
2017-07-28 15:27:34 +08:00
respond_to do |format|
format.js
format.html
end
end
2017-08-25 16:11:35 +08:00
# 新增专业页面
def new_major
respond_to do |format|
format.js
end
end
# 新增专业
def insert_major
major_list = Major.create(:name=>params[:major],:first_level_discipline_id=>params[:first_level_discipline_id],:major_level=>params[:major_level],:discipline_category_id=>params[:discipline_category_id],:major_code=>params[:major_code])
redirect_to profession_managements_path
end
# 支撑实训
def support_shixun
if params[:syllabus_id]
2017-08-25 16:11:35 +08:00
major = Major.find params[:syllabus_id]
major.update_attributes(:support_shixuns => !major.support_shixuns)
end
end
2017-07-28 15:27:34 +08:00
# 实训适用课程
def applicable_course
2017-08-11 11:27:04 +08:00
@menu_type = 12
@sub_type = 2
2017-08-11 19:59:19 +08:00
@major = Major.where(:major_level => 2)
2017-08-11 11:27:04 +08:00
@courselist = CourseList.where("0=0")
search=params[:search]
2017-08-11 15:04:14 +08:00
unless search.blank?
2017-08-11 11:27:04 +08:00
@courselist = @courselist.where("name like '%#{search}%'")
end
2017-08-11 15:04:14 +08:00
@courselist = @courselist.reorder("created_at desc")
2017-08-11 11:27:04 +08:00
@courselist_count = @courselist.count
@limit = 4
@is_remote = true
@page = params['page'] ? params['page'].to_i : 1
@courselist_pages = Paginator.new @courselist_count, @limit, @page
@offset ||=@courselist_pages.offset
@courselist = paginateHelper @courselist, @limit
respond_to do |format|
format.js
format.html
end
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
# 增加课程
def add_course
2017-08-11 15:04:14 +08:00
courselist= CourseList.create(:name => params[:course])
redirect_to applicable_course_managements_path
end
2017-08-11 19:59:19 +08:00
# 增加课程所属专业
2017-08-11 15:04:14 +08:00
def add_major
2017-08-18 09:41:06 +08:00
data = {result: 0}
id = MajorCourse.where(:course_list_id => params[:course_list_id]).first
if (id.nil?) || (params[:major_id].to_i != '0' && params[:major_id].to_i != id.major_id)
MajorCourse.create(:course_list_id => params[:course_list_id],:major_id=>params[:major_id])
data[:result] = 1
2017-08-11 19:59:19 +08:00
end
2017-08-18 09:41:06 +08:00
render :json => data
2017-07-28 15:27:34 +08:00
end
2017-08-11 19:59:19 +08:00
2017-07-20 14:34:44 +08:00
# 单位部门列表
2017-07-13 15:05:10 +08:00
def departments
2017-07-27 09:45:31 +08:00
@menu_type = 6
@sub_type = 2
2017-08-11 11:27:04 +08:00
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order]
2017-07-27 09:45:31 +08:00
@department =Department.where("0=0")
search=params[:search]
if search.blank?
@department = @department
else
@department = @department.where("name like '%#{search}%'")
end
2017-08-11 11:27:04 +08:00
@department = @department.reorder("created_at #{@sx_order}")
2017-07-27 09:45:31 +08:00
@department_count =@department.count
limit = 20
@is_remote = true
@department_pages = Paginator.new @department_count, limit, params['page'] || 1
@offset ||=@department_pages.offset
@department = paginateHelper @department, limit
respond_to do |format|
format.js
format.html
end
2017-07-13 15:05:10 +08:00
end
2017-08-11 11:27:04 +08:00
2017-07-20 14:34:44 +08:00
# 单位列表
2017-07-14 15:22:35 +08:00
def departments_part
2017-07-27 09:45:31 +08:00
@menu_type = 6
@sub_type = 1
@schools = School.where("0=0")
2017-08-11 11:27:04 +08:00
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order]
2017-07-27 09:45:31 +08:00
search=params[:search]
if search.blank?
@schools = @schools
else
@schools = @schools.where("name like '%#{search}%'")
end
2017-08-11 11:27:04 +08:00
@schools = @schools.reorder("created_at #{@sx_order}")
2017-07-27 09:45:31 +08:00
@schools_count = @schools.count
2017-07-20 14:34:44 +08:00
limit = 20
@is_remote = true
@schools_pages = Paginator.new @schools_count, limit, params['page'] || 1
@offset ||= @schools_pages.offset
2017-07-27 09:45:31 +08:00
@schools= paginateHelper @schools, limit
respond_to do |format|
format.js
format.html
end
2017-07-14 15:22:35 +08:00
end
2017-07-20 14:34:44 +08:00
# 部门审核
def depart
2017-07-27 09:45:31 +08:00
@menu_type = 10
@sub_type = 3
search = params[:search]
2017-08-18 09:41:06 +08:00
@apply_status = ApplyAddDepartment.where(:status=>0)
2017-08-11 11:27:04 +08:00
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order]
2017-07-27 09:45:31 +08:00
if search.blank?
@apply_status = @apply_status.where("0=0")
else
@apply_status= @apply_status.where("name like '%#{search}%'")
end
2017-08-11 11:27:04 +08:00
@apply_status = @apply_status.order("created_at #{@sx_order}")
2017-07-20 14:34:44 +08:00
@apply_status_count = @apply_status.count
limit = 20
@is_remote = true
@apply_status_pages = Paginator.new @apply_status_count, limit, params['page'] || 1
@offset ||=@apply_status_pages.offset
@apply_status = paginateHelper @apply_status, limit
2017-07-27 09:45:31 +08:00
respond_to do |format|
format.js
format.html
end
2017-07-14 15:22:35 +08:00
end
2017-08-18 16:15:32 +08:00
# 批准
def approve_applied_departments
applied_department = ApplyAddDepartment.find params[:id]
applied_message = AppliedMessage.where(:applied_id => applied_department.id, :applied_type => "ApplyAddDepartment")
applied_message.update_all(:status => 1)
applied_department.update_column('status', 1) unless applied_department.nil?
AppliedMessage.create(:user_id => applied_department.user_id, :status => 1, :viewed => 0, :applied_id => applied_department.id, :applied_type => "ApplyAddDepartment", :name => applied_department.name )
respond_to do |format|
format.html{ redirect_to depart_managements_path }
end
end
# 删除
def delete_applied_departments
applied_department = ApplyAddDepartment.find params[:id]
applied_message = AppliedMessage.where(:applied_id => applied_department.id, :applied_type => "ApplyAddDepartment")
applied_message.update_all(:status => 3)
applied_department.update_attribute(:status, 3)
# 未审批删除
if params[:tip] == "unapplied"
AppliedMessage.create(:user_id => applied_department.user_id, :status => 3, :viewed => 0, :applied_id => applied_department.id, :applied_type => "ApplyAddDepartment", :name => applied_department.name )
# 删除学校的用户
users = UserExtensions.where("department_id = #{applied_department.department_id}")
users.update_all(:department_id => nil)
applied_department.department.destroy
redirect_to depart_managements_path
# 已审批删除
elsif params[:tip] == "applied"
applied_department.destroy
redirect_to depart_managements_path
end
end
# 部门修改
def all_department
apply_department = ApplyAddDepartment.where("status = 0")
apply_department_ids = apply_department.empty? ? "(-1)" : "(" + apply_department.map{|sc| sc.department_id}.join(',') + ")"
if !params[:search].nil?
search = "%#{params[:search].to_s.strip.downcase}%"
@department = Department.where("id not in #{apply_department_ids} and #{Department.table_name}.name like :p", :p => search)
#@schools = School.all
else
#@course = @user.courses.where("is_delete = 0 and #{Course.table_name}.id != #{homework.course_id}").select { |course| @user.allowed_to?(:as_teacher,course)}
@department = Department.where("id not in #{apply_department_ids}")
end
@edit_id = params[:department_id]
@search = params[:search]
respond_to do |format|
format.js
end
# redirect_to unit_managements_path
end
# 修改
def edit_applied_department
aas =ApplyAddDepartment.find(params[:applied_id])
# aas.update_attribute(:name, params[:name])
#applied_add_school = ApplyAddSchools.where(:name => aas.name)
department =Department.find params[:department_id]
begin
#更新消息表的status
applied_message_id = aas.department_id
applied_message = AppliedMessage.where(:applied_id => applied_message_id, :applied_type => "ApplyAddDepartment")
applied_message.update_all(:status => 4)
aas.update_attribute(:status, 2)
AppliedMessage.create(:user_id => aas.user_id, :status => 2, :viewed => 0, :applied_id => aas.id, :applied_type => "ApplyAddDepartment", :name =>department[0].name )
users = UserExtensions.where("department_id = #{aas.department_id}")
users.update_all(:department_id => department.id)
if aas.department_id != department.id.to_i
aas.department.destroy
end
ApplyAddDepartment.where(:department_id => aas.department_id).update_all(:department_id => department.id)
Department.where(:department_id => aas.department_id).update_all(:department_id => department.id)
aas.update_attribute(:department_id, department.id)
rescue Exception => e
puts e
end
redirect_to depart_managements_path
end
2017-07-20 14:34:44 +08:00
# 单位审批
def unit
2017-07-27 09:45:31 +08:00
@menu_type = 10
@sub_type = 4
search = params[:search]
2017-08-11 11:27:04 +08:00
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order]
2017-08-18 09:41:06 +08:00
@apply_status = ApplyAddSchools.where(:status=>0)
2017-07-27 09:45:31 +08:00
if search.blank?
@apply_status = @apply_status.where("0=0")
else
@apply_status= @apply_status.where("name like '%#{search}%'")
end
2017-08-11 11:27:04 +08:00
@apply_status = @apply_status.order("created_at #{@sx_order}")
2017-07-20 14:34:44 +08:00
@apply_status_count = @apply_status.count
limit = 20
@is_remote = true
@apply_status_pages = Paginator.new @apply_status_count, limit, params['page'] || 1
2017-07-27 09:45:31 +08:00
@offset ||= @apply_status_pages.offset
2017-07-20 14:34:44 +08:00
@apply_status = paginateHelper @apply_status, limit
2017-07-27 09:45:31 +08:00
respond_to do |format|
format.js
format.html
end
end
2017-08-18 16:15:32 +08:00
2017-08-18 09:41:06 +08:00
# 单位审批批准
def approve_applied_schools
applied_school = ApplyAddSchools.where(:id =>params[:id]).first
applied_message_id = applied_school.school_id
applied_message = AppliedMessage.where(:applied_id => applied_message_id, :applied_type => "ApplyAddSchools")
applied_message.update_all(:status => 1)
unless applied_school.nil?
applied_school.update_column('status', 1)
end
school = applied_school.school
school.update_attribute("province", applied_school.province)
AppliedMessage.create(:user_id => applied_school.user_id, :status => 1, :viewed => 0, :applied_id => applied_school.id, :applied_type => "ApplyAddSchools", :name => applied_school.name )
redirect_to unit_managements_path
end
2017-08-18 17:57:08 +08:00
# 删除
def delete_applied_schools
applied_school = ApplyAddSchools.find(params[:id])
applied_message_id = applied_school.school_id
applied_message = AppliedMessage.where(:applied_id => applied_message_id, :applied_type => "ApplyAddSchools")
applied_message.update_all(:status => 3)
applied_school.update_attribute(:status, 3)
# 单位对应的部门审核也应做删除处理
applied_departments = ApplyAddDepartment.where(:school_id => applied_school.school_id)
applied_departments.update_all(:status => 3)
AppliedMessage.where(:applied_id => applied_departments.map(&:id), :applied_type => "ApplyAddDepartment").update_all(:status => 3)
# 未审批删除
if params[:tip] == "unapplied"
AppliedMessage.create(:user_id => applied_school.user_id, :status => 3, :viewed => 0, :applied_id => applied_school.id, :applied_type => "ApplyAddSchools", :name => applied_school.name )
if applied_departments.first
AppliedMessage.create(:user_id => applied_departments.first.user_id, :status => 3, :viewed => 0, :applied_id => applied_departments.first.id, :applied_type => "ApplyAddDepartment", :name => applied_departments.first.name )
end
# 删除学校的用户
users = UserExtensions.where("school_id = #{applied_school.school_id}")
users.update_all(:school_id => nil, :department_id => nil)
applied_school.school.destroy
applied_school.school.departments.destroy_all
redirect_to unit_managements_path
# 已审批删除
elsif params[:tip] == "applied"
applied_school.destroy
redirect_to unit_managements_path
end
end
2017-08-18 09:41:06 +08:00
# 单位审批修改
def all_schools
apply_schools = ApplyAddSchools.where("status = 0")
apply_school_ids = apply_schools.empty? ? "(-1)" : "(" + apply_schools.map{|sc| sc.school_id}.join(',') + ")"
if !params[:search].nil?
search = "%#{params[:search].to_s.strip.downcase}%"
@schools = School.where("id not in #{apply_school_ids} and #{School.table_name}.name like :p", :p => search)
#@schools = School.all
else
#@course = @user.courses.where("is_delete = 0 and #{Course.table_name}.id != #{homework.course_id}").select { |course| @user.allowed_to?(:as_teacher,course)}
@schools = School.where("id not in #{apply_school_ids}")
end
@edit_id = params[:school_id]
@search = params[:search]
respond_to do |format|
format.js
end
end
2017-08-18 16:15:32 +08:00
2017-08-18 09:41:06 +08:00
# 修改
def edit_applied_schools
aas = ApplyAddSchools.find(params[:applied_id])
school = School.find params[:school_id]
begin
#更新消息表的status
applied_message_id = aas.school_id
applied_message = AppliedMessage.where(:applied_id => applied_message_id, :applied_type => "ApplyAddSchools")
applied_message.update_all(:status => 4)
aas.update_attribute(:status, 2)
AppliedMessage.create(:user_id => aas.user_id, :status => 2, :viewed => 0, :applied_id => aas.id, :applied_type => "ApplyAddSchools", :name => school[0].name )
users = UserExtensions.where("school_id = #{aas.school_id}")
2017-08-18 10:50:35 +08:00
users.update_all(:school_id => school.id)
if aas.school_id != school.id.to_i
2017-08-18 09:41:06 +08:00
aas.school.destroy
end
2017-08-18 10:50:35 +08:00
ApplyAddDepartment.where(:school_id => aas.school_id).update_all(:school_id => school.id)
Department.where(:school_id => aas.school_id).update_all(:school_id => school.id)
aas.update_attribute(:school_id, school.id)
2017-08-18 09:41:06 +08:00
rescue Exception => e
puts e
end
redirect_to unit_managements_path
end
2017-07-20 14:34:44 +08:00
# 课堂列表
def classroom
2017-07-27 09:45:31 +08:00
@menu_type = 2
@sub_type = 1
@syllabus = Syllabus.where("0=0")
2017-07-28 15:27:34 +08:00
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order]
2017-08-11 11:27:04 +08:00
major_level_option = params[:major_level] if params[:major_level]
discipline_category_option = params[:discipline_category_id] if params[:discipline_category_id]
first_level_discipline_option = params[:first_level_discipline_id] if params[:first_level_discipline_id]
syllabus_major_option = params[:major_id] if params[:major_id]
2017-07-28 17:01:42 +08:00
keyword = params[:keyword]
search = params[:search]
2017-08-11 11:27:04 +08:00
if major_level_option && major_level_option != '0'
2017-07-28 17:01:42 +08:00
@syllabus = @syllabus.where(:major_level=>major_level_option)
2017-07-27 09:45:31 +08:00
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if discipline_category_option && discipline_category_option != '0'
2017-07-27 09:45:31 +08:00
@syllabus=@syllabus.where(:discipline_category_id=>discipline_category_option)
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if first_level_discipline_option && first_level_discipline_option != '0'
2017-07-27 09:45:31 +08:00
@syllabus=@syllabus.where(:first_level_discipline_id=>first_level_discipline_option)
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if syllabus_major_option && syllabus_major_option != '0'
2017-07-27 09:45:31 +08:00
@syllabus=@syllabus.where(:major_id=>syllabus_major_option)
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if params[:school_id] && params[:school_id] != ''
@syllabus = @syllabus.includes(:user => {:user_extensions => []}).where("user_extensions.school_id = #{params[:school_id]}")
2017-07-27 09:45:31 +08:00
end
2017-07-28 15:27:34 +08:00
if search.blank?
2017-08-11 11:27:04 +08:00
@syllabus = @syllabus
2017-07-27 09:45:31 +08:00
else
2017-07-28 15:27:34 +08:00
if "u_name" == keyword
user_id = User.where("concat(lastname, firstname) like '%#{search}%'")
@syllabus = @syllabus.includes(:user).where("concat(users.lastname, users.firstname) like '%#{search}%'")
else
2017-07-28 17:01:42 +08:00
@syllabus= @syllabus.where("title like '%#{search}%'")
2017-07-28 15:27:34 +08:00
end
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
@syllabus = @syllabus.order("syllabuses.created_at #{@sx_order}")
@syllabus_count = @syllabus.count
2017-07-20 14:34:44 +08:00
limit = 20
@is_remote = true
@syllabus_pages = Paginator.new @syllabus_count, limit, params['page'] || 1
@offset ||= @syllabus_pages.offset
@syllabus = paginateHelper @syllabus, limit
2017-07-27 09:45:31 +08:00
respond_to do |format|
format.js
2017-07-28 17:01:42 +08:00
format.html
2017-07-27 09:45:31 +08:00
end
end
2017-07-20 14:34:44 +08:00
# 班级列表
def classroom_classment
2017-07-27 09:45:31 +08:00
@menu_type = 2
@sub_type = 2
2017-07-28 15:27:34 +08:00
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order]
2017-07-21 15:26:07 +08:00
@courses = Course.where("0=0")
2017-07-27 09:45:31 +08:00
@timing=Course.where(:is_end=>false).count
@end=Course.where(:is_end=>true).count
unless params[:school_id] || params[:search] || params[:keyword] || params[:status]
user_exs=UserExtensions.where(:school_id=> @courses.map(&:school_id))
@schools = School.where(:id =>user_exs.map(&:school_id))
end
2017-08-11 11:27:04 +08:00
@search = params[:search] # 搜索字
@keyword = params[:keyword].blank? ? "u_name" : params[:keyword] # 根据姓名/课程名搜索
2017-07-27 09:45:31 +08:00
status = params[:status].to_i
2017-08-11 11:27:04 +08:00
2017-08-18 09:41:06 +08:00
if params[:school_id] && params[:school_id] != ''
2017-08-11 11:27:04 +08:00
@school_id = params[:school_id]
@courses =Course.joins("join users u on courses.tea_id = u.id").joins("join user_extensions ue on u.id = ue.user_id").where("ue.school_id = #{params[:school_id]}")
end
if params[:homepage_show]
@courses = @courses.where(:homepage_show => params[:homepage_show].to_i)
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
2017-07-27 09:45:31 +08:00
if params[:status] && params[:status]!=''
2017-08-11 11:27:04 +08:00
@status = params[:status]
@courses =@courses.where(:is_end =>status)
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
if "u_name" == @keyword
if @search.blank?
@courses = @courses
2017-07-27 09:45:31 +08:00
else
2017-08-11 11:27:04 +08:00
user_id = User.where("concat(lastname, firstname) like '%#{@search}%'")
@courses = @courses.joins("join users u on courses.tea_id = u.id").where("concat(u.lastname, u.firstname) like '%#{@search}%'")
2017-07-27 09:45:31 +08:00
end
else
2017-08-11 11:27:04 +08:00
@courses= @courses.where("name like '%#{@search}%'")
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
@courses = @courses.select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime").reorder("updatetime #{@sx_order}")
2017-07-27 09:45:31 +08:00
@courses_count = @courses.count
2017-07-20 14:34:44 +08:00
limit = 20
@is_remote = true
2017-07-27 09:45:31 +08:00
@courses_pages = Paginator.new @courses_count, limit, params['page'] || 1
@offset ||= @courses_pages.offset
2017-07-21 15:26:07 +08:00
@courses = paginateHelper @courses, limit
2017-07-27 09:45:31 +08:00
respond_to do |format|
format.js
format.html
end
end
2017-08-11 11:27:04 +08:00
# 班级首页显示
def course_homepage_show
if params[:course_id]
course = Course.find params[:course_id]
course.update_attributes(:homepage_show => !course.homepage_show)
end
end
2017-07-21 15:26:07 +08:00
# 课程实训
2017-07-20 14:34:44 +08:00
def class_shixuns
2017-07-27 09:45:31 +08:00
@menu_type = 4
@sub_type = 1
@edit_class_sx_num=Subject.where(:status => 0).count
@audit_class_sx_num=Subject.where(:status => 1).count
@publish_class_sx_num=Subject.where(:status => 2).count
search = params[:search] # 搜索字
keyword = params[:keyword].blank? ? "u_name" : params[:keyword] # 根据姓名/课程名搜索
status = params[:status].to_i
if params[:school_id] && params[:school_id] != '0'
@c_shixuns = Subject.includes(:user => {:user_extensions => []}).where("user_extensions.school_id = #{params[:school_id]}")
else
@c_shixuns = Subject.where("0=0")
end
if params[:status] && params[:status]!=''
@c_shixuns= @c_shixuns.where(:status =>status)
end
if search.blank?
@c_shixuns = @c_shixuns
else
if "u_name" == keyword
2017-08-11 11:27:04 +08:00
# user_id = User.where("concat(lastname, firstname) like '%#{search}%'")
2017-07-27 09:45:31 +08:00
@c_shixuns = @c_shixuns.includes(:user).where("concat(users.lastname, users.firstname) like '%#{search}%'")
else
@c_shixuns= @c_shixuns.where("name like '%#{search}%'")
end
end
unless params[:school_id] || params[:search] || params[:keyword] || params[:status]
user_exs = UserExtensions.where(:user_id => @c_shixuns.map(&:user_id))
@schools = School.where(:id => user_exs.map(&:school_id))
end
2017-08-23 09:24:32 +08:00
@c_shixuns_count = @c_shixuns.count
limit = 20
@c_shixuns_pages = Paginator.new @c_shixuns_count, limit, params['page'] || 1
@offset ||= @c_shixuns_pages.offset
@c_shixuns = paginateHelper @c_shixuns, limit
2017-07-27 09:45:31 +08:00
respond_to do |format|
format.js
format.html
end
end
2017-07-27 09:45:31 +08:00
def update_subject_hidden
@subject = Subject.find(params[:subject_id])
@subject.update_column(:hidden, !@subject.hidden)
end
2017-07-21 15:26:07 +08:00
# 已发布课程实训
2017-07-20 14:34:44 +08:00
def class_publish_shixuns
2017-07-27 09:45:31 +08:00
@menu_type = 4
@sub_type = 2
search = params[:search] # 搜索字
keyword = params[:keyword].blank? ? "u_name" : params[:keyword] # 根据姓名/课程名搜索
if params[:school_id] && params[:school_id] != '0'
@c_shixuns = Subject.includes(:user => {:user_extensions => []}).where("subjects.status = 2 and user_extensions.school_id = #{params[:school_id]}")
else
@c_shixuns = Subject.where(:status => 2)
end
if search.blank?
2017-08-11 11:27:04 +08:00
elsif "u_name" == keyword
2017-07-27 09:45:31 +08:00
# 如果用户搜索为空不用遍历user表直接查找所有实训, 有搜索时才查找user
2017-08-11 11:27:04 +08:00
user_id = User.where("concat(lastname, firstname) like '%#{search}%'")
2017-07-27 09:45:31 +08:00
@c_shixuns = @c_shixuns.includes(:user).where("concat(users.lastname, users.firstname) like '%#{search}%'")
else
@c_shixuns= @c_shixuns.where("name like '%#{search}%'")
end
unless params[:school_id] || params[:search] || params[:keyword]
user_exs = UserExtensions.where(:user_id => @c_shixuns.map(&:user_id))
@schools = School.where(:id => user_exs.map(&:school_id))
end
2017-08-11 11:27:04 +08:00
@c_shixuns = @c_shixuns.order("created_at desc")
2017-08-23 09:24:32 +08:00
@c_shixuns_count = @c_shixuns.count
limit = 20
@c_shixuns_pages = Paginator.new @c_shixuns_count, limit, params['page'] || 1
@offset ||= @c_shixuns_pages.offset
@c_shixuns = paginateHelper @c_shixuns, limit
2017-07-27 09:45:31 +08:00
respond_to do |format|
format.js
format.html
end
2017-07-14 15:22:35 +08:00
end
2017-07-20 14:34:44 +08:00
2017-07-13 15:05:10 +08:00
# 0 全部1 活动的; 2 已注册; 3 锁定
def users
2017-07-27 09:45:31 +08:00
@menu_type =7
@sub_type = 1
status = params[:user_status].nil? ? 0 : params[:user_status].to_i
@us_order = params[:us_order].blank? ? "desc" : params[:us_order] # 排序
@order_key = params[:order_key].blank? ? "created_on" : params[:order_key] # 排序关键字
2017-07-13 15:05:10 +08:00
condition = (params[:research_condition].nil? || params[:research_condition] == "name") ? "concat(lastname, firstname)" : params[:research_condition]
if 0 == status
if params[:research_condition] == "phone" && params[:research_contents].blank?
2017-07-27 09:45:31 +08:00
@users = User.order("#{@order_key} #{@us_order}").all
2017-07-13 15:05:10 +08:00
else
2017-07-27 09:45:31 +08:00
@users = User.where("#{condition} like '%#{params[:research_contents]}%'").order("#{@order_key} #{@us_order}").all
2017-07-13 15:05:10 +08:00
end
else
if params[:research_condition] == "phone" && params[:research_contents].blank?
2017-07-27 09:45:31 +08:00
@users = User.where(:status => status).order("#{@order_key} #{@us_order}").all
2017-07-13 15:05:10 +08:00
else
2017-07-27 09:45:31 +08:00
@users = User.where("status = #{status} and #{condition} like '%#{params[:research_contents]}%'").order("#{@order_key} #{@us_order}").all
2017-07-13 15:05:10 +08:00
end
end
@users_count = @users.count
@limit = 20
@is_remote = true
@users_pages = Paginator.new @users_count, @limit, params['page'] || 1
@offset ||= @users_pages.offset
@users = paginateHelper @users, @limit
respond_to do |format|
2017-07-27 09:45:31 +08:00
format.js
2017-07-13 15:05:10 +08:00
format.html
end
end
def shixuns
@menu_type = 3
2017-07-27 09:45:31 +08:00
@sub_type = 1
2017-07-13 15:05:10 +08:00
sx_status = params[:status].blank? ? [0, 1, 2, 3] : params[:status].to_i # 搜索实训的状态
keyword = params[:keyword].blank? ? "u_name" : params[:keyword] # 根据姓名/实训名搜索
search = params[:search] # 搜索的字
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order] # 排序
if "u_name" == keyword
# 如果用户搜索为空不用遍历user表直接查找所有实训, 有搜索时才查找user
if search.blank?
@shixuns = Shixun.where(:status => sx_status).order("created_at #{@sx_order}")
else
user_id = User.where("concat(lastname, firstname) like '%#{search}%'")
@shixuns = Shixun.where(:user_id => user_id, :status => sx_status).order("created_at #{@sx_order}")
end
else
@shixuns = Shixun.where("name like '%#{search}%'").where(:status => sx_status).order("created_at #{@sx_order}")
end
@edit_sx_num = Shixun.where(:status => 0).count
@audit_sx_num = Shixun.where(:status => 1).count
@publish_sx_num =Shixun.where(:status => 2).count
@close_sx_num = Shixun.where(:status => 3).count
@shixuns_count = @shixuns.count
limit = 20
@shixuns_pages = Paginator.new @shixuns_count, limit, params['page'] || 1
@offset ||= @shixuns_pages.offset
@shixuns = paginateHelper @shixuns, limit
respond_to do |format|
format.js
format.html
end
end
def update_shixun_hidden
@shixun = Shixun.find(params[:shixun_id])
@shixun.update_column(:hidden, !@shixun.hidden)
end
# 已发布的实训
def publish_shixuns
@menu_type = 3
2017-07-27 09:45:31 +08:00
@sub_type = 2
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order] # 排序
search = params[:search] # 搜索字
keyword = params[:keyword].blank? ? "u_name" : params[:keyword] # 根据姓名/实训名搜索
close = params[:close] # 关闭实训,参数是实训的Id
unless close.blank?
Shixun.find(close).update_attribute(:status, 3)
end
if "u_name" == keyword
# 如果用户搜索为空不用遍历user表直接查找所有实训, 有搜索时才查找user
if search.blank?
@shixuns = Shixun.where(:status => 2).order("created_at #{@sx_order}")
else
user_id = User.where("concat(lastname, firstname) like '%#{search}%'")
@shixuns = Shixun.where(:user_id => user_id, :status => 2).order("created_at #{@sx_order}")
end
else
@shixuns = Shixun.where("name like '%#{search}%'").where(:status => 2).order("created_at #{@sx_order}")
end
2017-08-11 11:27:04 +08:00
if params[:homepage_show]
@shixuns = @shixuns.where(:homepage_show => params[:homepage_show].to_i)
end
@shixuns_count = @shixuns.count
limit = 20
@shixuns_pages = Paginator.new @shixuns_count, limit, params['page'] || 1
@offset ||= @shixuns_pages.offset
@shixuns = paginateHelper @shixuns, limit
respond_to do |format|
format.js
format.html
end
end
2017-08-11 11:27:04 +08:00
# 实训首页显示
def shixun_homepage_show
if params[:shixun_id]
shixun = Shixun.find params[:shixun_id]
shixun.update_attributes(:homepage_show => !shixun.homepage_show)
end
end
# 已关闭的实训
def close_shixuns
@menu_type = 3
2017-07-27 09:45:31 +08:00
@sub_type = 3
@sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order] # 排序
search = params[:search] # 搜索字
keyword = params[:keyword].blank? ? "u_name" : params[:keyword] # 根据姓名/实训名搜索
reopen = params[:reopen] # 从新开启实训,参数是实训的Id
unless reopen.blank?
Shixun.find(reopen).update_attribute(:status, 2)
end
if "u_name" == keyword
# 如果用户搜索为空不用遍历user表直接查找所有实训, 有搜索时才查找user
if search.blank?
@shixuns = Shixun.where(:status => 3).order("updated_at #{@sx_order}")
else
user_id = User.where("concat(lastname, firstname) like '%#{search}%'")
@shixuns = Shixun.where(:user_id => user_id, :status => 3).order("updated_at #{@sx_order}")
end
else
@shixuns = Shixun.where("name like '%#{search}%'").where(:status => 3).order("updated_at #{@sx_order}")
end
@shixuns_count = @shixuns.count
limit = 20
@shixuns_pages = Paginator.new @shixuns_count, limit, params['page'] || 1
@offset ||= @shixuns_pages.offset
@shixuns = paginateHelper @shixuns, limit
respond_to do |format|
format.js
format.html
end
end
2017-07-13 15:05:10 +08:00
def users_trial
2017-07-27 09:45:31 +08:00
@menu_type = 7
@sub_type = 2
2017-07-13 15:05:10 +08:00
@users = User.where(:status => 1).order("created_on desc").all
@users_count = @users.count
@limit = 20
@is_remote = true
@users_pages = Paginator.new @users_count, @limit, params['page'] || 1
@offset ||= @users_pages.offset
@users = paginateHelper @users, @limit
end
def search_user
=begin
auth = ApplyUserAuthentication.where(:status => params[:authentication])
auth_id = auth.blank? ? User.where(:status => 1).id : "(" + auth.map{|a| a.user_id }.join(",") + ")"
=end
if params[:member_ids] && params[:trial_whether] == "trial_agree"
params[:member_ids].each do |member|
aUser = ApplyAction.where(:user_id => member, :container_type => "TrialAuthorization")
if aUser.blank?
ApplyAction.create(:user_id => member, :container_type => "TrialAuthorization", :status => 1)
else
aUser.update_all(:status => 1)
end
end
elsif params[:member_ids] && params[:trial_whether] == "trial_cancel"
ApplyAction.where(:user_id => params[:member_ids], :container_type => "TrialAuthorization").update_all(:status => 2)
end
if params[:member_ids] && (params[:occupation] == "occupation_agree" || params[:realname] == "realname_agree")
User.where(:id => params[:member_ids]).update_all(:authentication => true)
elsif params[:member_ids] && (params[:occupation] == "occupation_agree" || params[:realname] == "realname_cancel")
User.where(:id => params[:member_ids]).update_all(:authentication => false)
end
if params[:trial] == "-1"
apply = ApplyAction.where(:container_type => "TrialAuthorization")
apply_id = apply.blank? ? -1 : "(" + apply.map{|a| a.user_id}.join(",") + ")"
apply_user_id = User.where("id not in #{apply_id} and status = 1").all
apply_user_id = apply_user_id.blank? ? [-1] : apply_user_id.map{|a| a.id}.split(",")[0]
elsif params[:trial] == "-2"
apply_user_id = User.where(:status => 1).all
apply_user_id = apply_user_id.blank? ? [-1] : apply_user_id.map{|a| a.id}.split(",")[0]
else
apply = ApplyAction.where(:status => params[:trial])
apply_user_id = apply.blank? ? [-1] : apply.map{|a| a.user_id}.split(",")[0]
end
if params[:school] == ""
s_user_id = User.where(:status => 1).all
s_user_id = s_user_id.blank? ? [-1] : s_user_id.map{|s| s.id}.split(",")[0]
else
school = School.where("name like '%#{params[:school]}%'")
school_id = school.blank? ? -1 : school.map{|s| s.id }.split(",")[0]
usr = UserExtensions.where(:school_id => school_id)
s_user_id = usr.blank? ? [-1] : usr.map{|u| u.user_id}.split(",")[0]
end
if params[:department] == ""
d_user_id = User.where(:status => 1).all
d_user_id = d_user_id.blank? ? [-1] : d_user_id.map{|d| d.id}.split(",")[0]
else
department = Department.where("name like '%#{params[:department]}%'").all
dep_id = department.blank? ? -1 : department.map{|d| d.id}.split(",")
usr = UserExtensions.where(:department_id => dep_id)
d_user_id = usr.blank? ? [-1] : usr.map{|u| u.user_id}.split(",")[0]
end
user_id = s_user_id & d_user_id & apply_user_id
if params[:research_condition] == "name"
@users = User.where(:id => user_id).where("concat(lastname, firstname) like '%#{params[:research_contents]}%'").order("created_on desc")
elsif params[:research_condition] == "email"
@users = User.where(:id => user_id).where("mail like '%#{params[:research_contents]}%'").order("created_on desc")
elsif params[:research_condition] == "phone"
if params[:research_contents].blank?
@users = User.where(:id => user_id).order("created_on desc")
else
@users = User.where(:id => user_id).where("phone like '%#{params[:research_contents]}%'").order("created_on desc")
end
end
@users_count = @users.count
@limit = 20
@is_remote = true
@users_pages = Paginator.new @users_count, @limit, params['page'] || 1
@offset ||= @users_pages.offset
@users = paginateHelper @users, @limit
respond_to do |format|
format.js
end
end
def update_webssh
webssh = params[:status] == "true" ? true : false
@shixuns = Shixun.find(params[:shixun_id])
@shixuns.update_column(:webssh, webssh)
respond_to do |format|
format.js
end
end
def affirm_cancel_auth
user_id = params[:users]
end
def trial_authorization
2017-07-27 09:45:31 +08:00
@menu_type =10
@sub_type = 2
2017-07-13 15:05:10 +08:00
search = params[:search]
@status = trial_authorization_status(params[:status])
# @status = (params[:status].blank? || params[:status] == "0") ? 0 : [1,2]
if search.blank?
@authorizations = ApplyAction.where(:container_type => "TrialAuthorization", :status => @status).includes(:user)
else
user_id = User.find_by_sql("select id from users where concat(lastname,firstname) like '%#{search}%'")
@authorizations = ApplyAction.where(:container_type => "TrialAuthorization", :status => @status, :user_id => user_id).includes(:user)
end
@autu_count = @authorizations.count
@limit = 15
@is_remote = true
@autu_pages = Paginator.new @autu_count, @limit, params['page'] || 1
@offset ||= @autu_pages.offset
@authorizations = paginateHelper @authorizations, @limit
2017-07-21 15:26:07 +08:00
2017-07-13 15:05:10 +08:00
end
# 批量授权
def batch_authorization
end
# params[:type] 1拒绝 0同意
# authentication 会有一个初始值,不同的值代表不同的权限
# REDO: 后面权限改了后,一并要改
def trial_authorization_operation
apply_action = ApplyAction.find(params[:apply_id])
type = params[:type]
search = params[:search]
if type == "0"
authentication_user = AuthenticationsUsers.where(:user_id => apply_action.user_id).first
if authentication_user.blank?
AuthenticationsUsers.create(:user_id => apply_action.user_id, :authentication_id => 1)
end
end
apply_action.update_attributes(:status => (params[:type] == "1" ? 2 : 1), :reason => params[:reject_reason], :dealer_id => User.current.id)
user_id = User.find_by_sql("select id from users where concat(lastname,firstname) like '%#{search}%'")
@authorizations = ApplyAction.where(:container_type => "TrialAuthorization", :status => 0, :user_id => user_id).includes(:user)
2017-07-21 15:26:07 +08:00
@autu_count = @authorizations.count
@limit = 15
@is_remote = true
@autu_pages = Paginator.new @autu_count, @limit, params['page'] || 1
@offset ||= @autu_pages.offset
@authorizations = paginateHelper @authorizations, @limit
2017-07-13 15:05:10 +08:00
respond_to do |format|
format.js
end
end
def index
end
# copy from admin
def identity_authentication
2017-07-27 09:45:31 +08:00
@menu_type = 10
@sub_type = 1
2017-07-13 15:05:10 +08:00
@type = trial_authorization_status(params[:type])
type = params[:type] || 0 # 存在type 就用type 没有就为 0
user_id = User.find_by_sql("select id from users where concat(lastname,firstname) like '%#{params[:name]}%'")
@unapproved_user = ApplyUserAuthentication.where(:status => @type, :user_id => user_id, :auth_type => 1).order("updated_at desc")
respond_to do |format|
format.html
format.js
end
end
def professional_authentication
@menu_type = 10
@sub_type = 7
@type = trial_authorization_status(params[:type])
type = params[:type] || 0 # 存在type 就用type 没有就为 0
user_id = User.find_by_sql("select id from users where concat(lastname,firstname) like '%#{params[:name]}%'")
@unapproved_user = ApplyUserAuthentication.where(:status => @type, :user_id => user_id, :auth_type => 2).order("updated_at desc")
2017-07-13 15:05:10 +08:00
respond_to do |format|
format.html
format.js
end
end
# 拒绝身份认证
# copy from admin
def reject_authentication
apply_user = ApplyUserAuthentication.where(:id => params[:apply_id], :auth_type => 1).first
2017-07-13 15:05:10 +08:00
reason = apply_user.update_attributes(:status => 2, :remarks => params[:reject_reason])
render :json => {success: reason}
end
# 同意身份认证
2017-07-13 15:05:10 +08:00
# copy from admin
def agree_authentication
apply_user = ApplyUserAuthentication.where(:id => params[:apply_id], :auth_type => 1).first
2017-07-13 15:05:10 +08:00
user = User.find(apply_user.user_id)
apply_user.update_attribute(:status, 1)
user.update_attribute(:authentication, true)
@unapproved_user = ApplyUserAuthentication.where(:status => 0, :auth_type => 1).order("updated_at desc")
respond_to do |format|
format.js
end
end
# 拒绝职业认证
def reject_authentication_pro
apply_user = ApplyUserAuthentication.where(:id => params[:apply_id], :auth_type => 2).first
reason = apply_user.update_attributes(:status => 2, :remarks => params[:reject_reason])
render :json => {success: reason}
end
# 同意职业认证
def agree_authentication_pro
apply_user = ApplyUserAuthentication.where(:id => params[:apply_id], :auth_type => 2).first
user = User.find(apply_user.user_id)
apply_user.update_attribute(:status, 1)
user.update_attribute(:professional_certification, true)
@unapproved_user = ApplyUserAuthentication.where(:status => 0, :auth_type => 2).order("updated_at desc")
2017-07-13 15:05:10 +08:00
respond_to do |format|
format.js
end
end
2017-07-21 15:26:07 +08:00
def subject_authorization
2017-07-27 09:45:31 +08:00
@menu_type = 10
2017-08-11 20:03:16 +08:00
@sub_type = 6
2017-07-21 15:26:07 +08:00
@type = trial_authorization_status params[:type]
2017-07-27 09:45:31 +08:00
@authorizations = ApplyAction.where(:container_type => "ApplySubject", :status => @type).order("created_at desc")
2017-07-21 15:26:07 +08:00
# @subject=Subject.all
2017-07-27 09:45:31 +08:00
@authorizations_count = @authorizations.count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator.new @authorizations_count, @limit, params['page'] || 1
@offset ||= @authorizations_pages.offset
@authorizations = paginateHelper @authorizations, @limit
2017-07-21 15:26:07 +08:00
respond_to do |format|
format.js
format.html
end
end
2017-07-13 15:05:10 +08:00
def shixun_authorization
2017-07-27 09:45:31 +08:00
@menu_type = 10
2017-08-11 19:59:19 +08:00
@sub_type = 5
2017-07-13 15:05:10 +08:00
@type = trial_authorization_status params[:type]
@authorizations = ApplyAction.where(:container_type => "ApplyShixun", :status => @type).order("created_at desc")
search = params[:search]
unless search.blank?
@authorizations = @authorizations.where(:container_id => Shixun.where(:id => @authorizations.map(&:container_id)).where("name like '%#{search}%'").map(&:id)).order("created_at desc")
end
@authorizations_count = @authorizations.count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator.new @authorizations_count, @limit, params['page'] || 1
@offset ||= @authorizations_pages.offset
@authorizations = paginateHelper @authorizations, @limit
respond_to do |format|
format.js
format.html
end
end
2017-07-21 15:26:07 +08:00
# 课程实训发布审批
def deal_subject_authorization
apply_action = ApplyAction.find(params[:apply_id])
type = params[:type].to_i
2017-07-27 09:45:31 +08:00
subject = Subject.find apply_action.container_id
2017-07-21 15:26:07 +08:00
if type == 0 #拒绝
subject.update_column('status', 0)
apply_action.update_attributes(:status => 2, :reason => params[:reject_reason], :dealer_id => User.current.id)
2017-07-27 09:45:31 +08:00
notes = "您所在团队提交的课程实训发布申请:<a href='#{subject_path(subject)}'>#{subject.name}</a>,审核未通过。<br/>原因:#{params[:reject_reason]}"
2017-07-21 15:26:07 +08:00
JournalsForMessage.create(:jour_id => subject.user_id, :jour_type => 'Principal', :user_id => User.current.id, :notes => notes, :private => 1, :reply_id => 0)
else #同意
subject.update_column('status', 2)
apply_action.update_attributes(:status => 1, :dealer_id => User.current.id)
2017-07-27 09:45:31 +08:00
end
@authorizations = ApplyAction.where(:container_type => "ApplySubject", :status => 0)
@authorizations_count = @authorizations.count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator.new @authorizations_count, @limit, params['page'] || 1
@offset ||= @authorizations_pages.offset
@authorizations = paginateHelper @authorizations, @limit
respond_to do |format|
format.js
end
2017-07-21 15:26:07 +08:00
end
# 项目实训发布审批
2017-07-13 15:05:10 +08:00
def deal_shixun_authorization
apply_action = ApplyAction.find(params[:apply_id])
type = params[:type].to_i
shixun = Shixun.find apply_action.container_id
2017-07-21 15:26:07 +08:00
if type == 0 #拒绝
2017-07-13 15:05:10 +08:00
shixun.update_column('status', 0)
apply_action.update_attributes(:status => 2, :reason => params[:reject_reason], :dealer_id => User.current.id)
notes = "您所在团队提交的项目实训发布申请:<a href='#{shixun_path(shixun)}'>#{shixun.name}</a>,审核未通过。<br/>原因:#{params[:reject_reason]}"
shixun.shixun_members.each do |member|
JournalsForMessage.create(:jour_id => member.user_id, :jour_type => 'Principal', :user_id => User.current.id, :notes => notes, :private => 1, :reply_id => 0)
end
2017-07-21 15:26:07 +08:00
else #同意
2017-07-13 15:05:10 +08:00
shixun.update_column('status', 2)
apply_action.update_attributes(:status => 1, :dealer_id => User.current.id)
shixun_modify_status_without_publish shixun, 1
end
@authorizations = ApplyAction.where(:container_type => "ApplyShixun", :status => 0)
@authorizations_count = @authorizations.count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator.new @authorizations_count, @limit, params['page'] || 1
@offset ||= @authorizations_pages.offset
@authorizations = paginateHelper @authorizations, @limit
respond_to do |format|
format.js
end
end
end