diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 7a413378c..887b24d06 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1787,24 +1787,48 @@ class CoursesController < ApplicationController end def search_not_teachers - if !params[:search].nil? - members = searchTeacherAndAssistant @course - member_ids = "(" + members.map(&:user_id).join(',') + ")" - condition = "%#{params[:search].strip}%".gsub(" ","") + members = searchTeacherAndAssistant @course + member_ids = "(" + members.map(&:user_id).join(',') + ")" + condition = "%#{params[:search]}%".gsub(" ","") + @school = params[:school] || @course.teacher.school_name + if @school != "" + school_s = "%#{@school}%".gsub(" ","") + school_ids = School.where("name like '#{school_s}'").blank? ? "(-1)" : "(" + School.where("name like '#{school_s}'").map(&:id).join(",") + ")" + @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and LOWER(concat(lastname, firstname)) LIKE '#{condition}' and user_extensions.school_id in #{school_ids}") + else @users = User.where("id not in #{member_ids} and status = 1 and LOWER(concat(lastname, firstname)) LIKE '#{condition}'").includes(:user_extensions) end + + @user_ids = @users.map(&:id).join(",") + @limit = 8 + @page = params[:page].nil? ? 1 : params['page'].to_i + @users_count = @users.count + @users_pages = Paginator.new @users_count, @limit, @page + @users = paginateHelper @users, @limit respond_to do |format| format.js end end def search_not_students - if !params[:search].nil? - members = @course.members.select{|m| m.roles.to_s.include?("Student")} - member_ids = members.empty? ? "(-1)" : "(" + members.map(&:user_id).join(',') + ")" - condition = "%#{params[:search].strip}%".gsub(" ","") + members = @course.members.select{|m| m.roles.to_s.include?("Student")} + member_ids = members.empty? ? "(-1)" : "(" + members.map(&:user_id).join(',') + ")" + condition = "%#{params[:search]}%".gsub(" ","") + @school = params[:school] || @course.teacher.school_name + if @school != "" + school_s = "%#{@school}%".gsub(" ","") + school_ids = School.where("name like '#{school_s}'").blank? ? "(-1)" : "(" + School.where("name like '#{school_s}'").map(&:id).join(",") + ")" + @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and user_extensions.school_id in #{school_ids} and (LOWER(concat(lastname, firstname)) LIKE '#{condition}' or user_extensions.student_id LIKE '#{condition}')") + else @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and (LOWER(concat(lastname, firstname)) LIKE '#{condition}' or user_extensions.student_id LIKE '#{condition}')") end + + @user_ids = @users.map(&:id).join(",") + @limit = 8 + @page = params[:page].nil? ? 1 : params['page'].to_i + @users_count = @users.count + @users_pages = Paginator.new @users_count, @limit, @page + @users = paginateHelper @users, @limit respond_to do |format| format.js end diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index 5155933e0..4a0026311 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -241,9 +241,10 @@ class MembersController < ApplicationController @create_member_error_messages = "角色不能留空" unless params[:membership][:role_ids] @create_member_error_messages = "用户不能留空" unless params[:membership][:user_ids] - if params[:membership][:user_ids] + #if params[:membership][:user_ids] + if params[:choose_student_ids] && params[:membership] attrs = params[:membership].dup - user_ids = attrs.delete(:user_ids) + user_ids = params[:choose_student_ids].split(",") user_ids.each do |user_id| if @course.members.where(:user_id => user_id).empty? member = Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id) diff --git a/app/views/courses/search_not_students.js.erb b/app/views/courses/search_not_students.js.erb index b6c3cc65a..553c5d086 100644 --- a/app/views/courses/search_not_students.js.erb +++ b/app/views/courses/search_not_students.js.erb @@ -1,7 +1,10 @@ -<% if params[:is_observe] %> +<% if params[:is_observe] || params[:page] %> + <% unless params[:page] %> + $("#choose_student_ids").val(''); + <% end %> $("#search_not_students_list").html("<%= j(render :partial => 'courses/settings/search_not_students_list') %>"); <% else %> laststSearchCondition = ''; var htmlvalue = "<%= j(render :partial => 'courses/settings/add_students') %>"; -pop_box_new(htmlvalue, 440, 490); +pop_box_new(htmlvalue, 560, 600); <% end %> \ No newline at end of file diff --git a/app/views/courses/search_not_teachers.js.erb b/app/views/courses/search_not_teachers.js.erb index 57cc85529..09320f786 100644 --- a/app/views/courses/search_not_teachers.js.erb +++ b/app/views/courses/search_not_teachers.js.erb @@ -1,4 +1,7 @@ -<% if params[:is_observe] %> +<% if params[:is_observe] || params[:page] %> + <% unless params[:page] %> + $("#choose_student_ids").val(''); + <% end %> $("#search_not_teachers_list").html("<%= j(render :partial => 'courses/settings/search_not_teachers_list') %>"); <% else %> lastteSearchCondition = ""; diff --git a/app/views/courses/settings/_add_students.html.erb b/app/views/courses/settings/_add_students.html.erb index 6833b5d87..9937847e4 100644 --- a/app/views/courses/settings/_add_students.html.erb +++ b/app/views/courses/settings/_add_students.html.erb @@ -1,5 +1,5 @@ -