|
|
|
@ -35,6 +35,9 @@ class Weapps::CoursesController < Weapps::BaseController
|
|
|
|
|
# 教师列表
|
|
|
|
|
def teachers
|
|
|
|
|
@course = current_course
|
|
|
|
|
@page = (params[:page] || 1).to_i
|
|
|
|
|
@limit = (params[:limit] || 20).to_i
|
|
|
|
|
search = params[:search].present? ? params[:search].strip : ""
|
|
|
|
|
if @course.try(:id) != 1309 || current_user.admin? || current_user.try(:id) == 15582
|
|
|
|
|
@teacher_list = @course.course_members.joins(:user).where("course_members.role in (1, 2, 3)")
|
|
|
|
|
else
|
|
|
|
@ -42,17 +45,26 @@ class Weapps::CoursesController < Weapps::BaseController
|
|
|
|
|
and course_members.role = 2))")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if search.present?
|
|
|
|
|
@teacher_list = @teacher_list.joins(:user).where("LOWER(CONCAT(users.lastname, users.firstname)) like ?", "%#{search}%")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
@teacher_list_size = @teacher_list.size
|
|
|
|
|
|
|
|
|
|
@applications_size = CourseMessage.unhandled_join_course_requests_by_course(@course).size
|
|
|
|
|
|
|
|
|
|
@teacher_list = @teacher_list.preload(user: [user_extension: :school])
|
|
|
|
|
@teacher_list = @teacher_list.includes(user: [user_extension: :school])
|
|
|
|
|
# 中英文混合排序(忽略大小写)
|
|
|
|
|
@teacher_list = @teacher_list.sort {|x, y| Pinyin.t(x.user&.real_name, splitter: '').upcase <=> Pinyin.t(y.user&.real_name, splitter: '').upcase}
|
|
|
|
|
@teacher_list = @teacher_list[(@page-1)*@limit ... @page*@limit]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 批量删除教师或助教
|
|
|
|
|
def delete_course_teachers
|
|
|
|
|
begin
|
|
|
|
|
@course = current_course
|
|
|
|
|
@page = (params[:page] || 1).to_i
|
|
|
|
|
@limit = (params[:limit] || 20).to_i
|
|
|
|
|
course_members = @course.course_members.where(id: params[:course_member_ids], role: %i[PROFESSOR ASSISTANT_PROFESSOR])
|
|
|
|
|
user_ids = course_members.pluck(:user_id)
|
|
|
|
|
course_members.destroy_all
|
|
|
|
@ -67,10 +79,18 @@ class Weapps::CoursesController < Weapps::BaseController
|
|
|
|
|
|
|
|
|
|
def students
|
|
|
|
|
@course = current_course
|
|
|
|
|
@page = (params[:page] || 1).to_i
|
|
|
|
|
@limit = (params[:limit] || 20).to_i
|
|
|
|
|
search = params[:search].present? ? params[:search].strip : nil
|
|
|
|
|
course_group_id = params[:course_group_id].present? ? params[:course_group_id].to_i : nil
|
|
|
|
|
|
|
|
|
|
@students = CourseMember.students(@course)
|
|
|
|
|
|
|
|
|
|
if search.present?
|
|
|
|
|
@students = @students.joins(user: :user_extension).where("LOWER(CONCAT(users.lastname, users.firstname)) like ? or
|
|
|
|
|
user_extensions.student_id like ?", "%#{search}%", "%#{search}%")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if course_group_id.present?
|
|
|
|
|
course_group = CourseGroup.find(course_group_id) if course_group_id != 0
|
|
|
|
|
@students = @students.where(course_group_id: course_group&.id.to_i)
|
|
|
|
@ -78,6 +98,9 @@ class Weapps::CoursesController < Weapps::BaseController
|
|
|
|
|
|
|
|
|
|
@students_count = @students.size
|
|
|
|
|
@students = @students.includes(user: :user_extension)
|
|
|
|
|
# 中英文混合排序(忽略大小写)
|
|
|
|
|
@students = @students.sort {|x, y| Pinyin.t(x.user&.real_name, splitter: '').upcase <=> Pinyin.t(y.user&.real_name, splitter: '').upcase}
|
|
|
|
|
@students = @students[(@page-1)*@limit ... @page*@limit]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 批量修改角色
|
|
|
|
|