diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index aaaa4484d..248b22991 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -133,6 +133,9 @@ class MembersController < ApplicationController elsif @course course_info = [] if params[:membership] + @create_member_error_messages = "角色不能留空" unless params[:membership][:role_ids] + @create_member_error_messages = "用户不能留空" unless params[:membership][:user_ids] + if params[:membership][:user_ids] attrs = params[:membership].dup user_ids = attrs.delete(:user_ids) @@ -140,7 +143,7 @@ class MembersController < ApplicationController member = Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id) role = Role.find_by_id(params[:membership][:role_ids]) # 这里的判断只能通过角色名,可以弄成常量 - if role.name == "学生" || role.name == "Student" + if role && (role.name == "学生" || role.name == "Student") StudentsForCourse.create(:student_id => user_id, :course_id =>@course.id) end members << member @@ -159,6 +162,11 @@ class MembersController < ApplicationController end @course.members << members @course.course_infos << course_info + + @roles = Role.givable.all[3..5] + members = @course.member_principals.includes(:roles, :principal).all.sort + else + @create_member_error_messages = l(:label_user_role_null) end respond_to do |format| format.html { redirect_to_settings_in_courses } diff --git a/app/views/courses/_course_members.html.erb b/app/views/courses/_course_members.html.erb index b568d3336..87cf59c3b 100644 --- a/app/views/courses/_course_members.html.erb +++ b/app/views/courses/_course_members.html.erb @@ -11,7 +11,7 @@
- <%= render :partial => "member" %> + <%= render :partial => "courses/member" %>
diff --git a/app/views/members/create.js.erb b/app/views/members/create.js.erb index 35280b7a4..93aad5b5e 100644 --- a/app/views/members/create.js.erb +++ b/app/views/members/create.js.erb @@ -1,22 +1,27 @@ <%if @project%> $('#tab-content-members').html('<%= escape_javascript(render :partial => 'projects/settings/members') %>'); -<%elsif @course%> -$('#tab-content-members').html('<%= escape_javascript(render :partial => 'courses/settings/members') %>'); -<%end%> - -hideOnLoad(); <%if !@applied_members%> - <% if @members.present? && @members.all? {|m| m.valid? } %> - <% @members.each do |member| %> - $("#member-<%= member.id %>").effect("highlight"); - <% end %> - <% else %> - <% if @members %> - <% errors = @members.collect {|m| m.errors.full_messages}.flatten.uniq.join(', ')%> - alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => errors || ''))) %>'); - <% else%> +<% if @members.present? && @members.all? {|m| m.valid? } %> +<% @members.each do |member| %> +$("#member-<%= member.id %>").effect("highlight"); +<% end %> +<% else %> +<% if @members %> +<% errors = @members.collect {|m| m.errors.full_messages}.flatten.uniq.join(', ')%> +alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => errors || ''))) %>'); +<% else%> // alert(''); - <% end%> - <% end %> +<% end%> <% end %> +<% end %> +<%elsif @course%> + <% if @create_member_error_messages%> + alert("<%= @create_member_error_messages%>"); + <% else%> + $('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); + alert("添加成功"); + <% end%> +<%end%> + +hideOnLoad();