修改了项目和课程里面成员配置显示错误

This commit is contained in:
huangjingquan 2013-11-02 10:34:53 +08:00
parent ac2b90ecfd
commit 09eb16ad9a
2 changed files with 44 additions and 99 deletions

View File

@ -164,8 +164,8 @@ class Role < ActiveRecord::Base
end
# Find all the roles that can be given to a project member
def self.find_all_givable
Role.givable.all
def self.find_all_givable
Role.givable.all
end
# Return the builtin 'non member' role. If the role doesn't exist,

View File

@ -1,52 +1,25 @@
<%= error_messages_for 'member' %>
<% roles = Role.find_all_givable
<% if @project.project_type == 1 %>
<% r = [] %>
<% for i in 3..5 %>
<% roles = Role.givable.all[i]
members = @project.member_principals.includes(:roles, :principal).all.sort %>
<!--Modified by young-->
<div class="splitcontent">
<% if roles.any? %>
<%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
<fieldset><legend><%=l(:label_member_new)%></legend>
<div class="splitcontentleft">
<p style="width:80%;"><span><%= label_tag "principal_search", l(:label_principal_search) %><%= text_field_tag 'principal_search', nil %></span></p>
<%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
<div id="principals_for_new_member">
<%= render_principals_for_new_members(@project) %>
</div>
<p style="margin-bottom:5px;margin-top:5px;"><%= submit_tag l(:button_add), :id => 'member-add-submit' %></p>
</div>
<div class="splitcontentright" style="width:30%;margin-top: 60px;">
<p><%= l(:label_role_plural) %>:
<% roles.each do |role| %>
<label>
<% if @project.project_type == 1 %>
<% if role == Role.find(3) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>老师
<% elsif role == Role.find(5) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>学生
<% elsif role == Role.find(7) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>助教
<% elsif role == Role.find(4)%>
<% else %>
<%= check_box_tag 'membership[role_ids][]', role.id %><%=h role %>
<% end %>
<% else %>
<% if role == Role.find(7) %>
<% else %>
<%= check_box_tag 'membership[role_ids][]', role.id %><%=h role %>
<% end %>
<% end %></label>
<% end %></p>
</div>
</fieldset>
<% end %>
<% r << roles %>
<% end %>
<% else %>
<% r = [] %>
<% for i in 0..2 %>
<% roles = Role.givable.all[i]
members = @project.member_principals.includes(:roles, :principal).all.sort %>
<% r << roles %>
<% end %>
<% end %>
</div>
<!--ended by young-->
<div class="splitcontent">
<div class="splitcontentleft">
<% if members.any? %>
<table class="list members">
<thead><tr>
<th><%= l(:label_user) %> / <%= l(:label_group) %></th>
<th><%= l(:label_user) %></th>
<th><%= l(:label_role_plural) %></th>
<th style="width:15%"></th>
<%= call_hook(:view_projects_settings_members_table_header, :project => @project) %>
@ -57,64 +30,14 @@
<tr id="member-<%= member.id %>" class="<%= cycle 'odd', 'even' %> member">
<td class="<%= member.principal.class.name.downcase %>"><%= link_to_user member.principal %></td>
<td class="roles">
<span id="member-<%= member.id %>-roles">
<% if @project.project_type == 1 %>
<% if member.roles.sort.collect(&:to_s).join(', ') =='Manager' %>
老师
<% elsif member.roles.sort.collect(&:to_s).join(', ') =='Reporter' %>
学生
<% elsif member.roles.sort.collect(&:to_s).join(', ') =='TA' %>
助教
<% else %>
<% end %>
<% else %>
<% if member.roles.sort.collect(&:to_s).join(', ') =='Manager' %>
Manager
<% elsif member.roles.sort.collect(&:to_s).join(', ') =='Developer' %>
Developer
<% elsif member.roles.sort.collect(&:to_s).join(', ') =='Reporter' %>
Reporter
<% else %>
<% end %>
<% end %>
</span>
<span id="member-<%= member.id %>-roles"><%=h member.roles.sort.collect(&:to_s).join(', ') %></span>
<%= form_for(member, {:as => :membership, :remote => true, :url => membership_path(member),
:method => :put,
:html => { :id => "member-#{member.id}-roles-form", :class => 'hol' }}
) do |f| %>
<p><% roles.each do |role| %>
<% if @project.project_type ==1 %>
<% if role == Role.find(3) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>老师
<% elsif role == Role.find(5) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>学生
<% elsif role == Role.find(7) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>助教
<% elsif role == Role.find(4) %>
<% else %>
<% end %>
<% else %>
<label>
<% if role == Role.find(3) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>Manager
<% elsif role == Role.find(5) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>Reporter
<% elsif role == Role.find(4) %>
<%= check_box_tag 'membership[role_ids][]', role.id %>Developer
<% elsif role == Role.find(7) %>
<% else %>
<% end %>
<% end %>
</label>
<p><% r.each do |role| %>
<label><%= check_box_tag 'membership[role_ids][]', role.id, member.roles.include?(role),
:disabled => member.member_roles.detect {|mr| mr.role_id == role.id && !mr.inherited_from.nil?} %> <%=h role %></label><br />
<% end %></p>
<%= hidden_field_tag 'membership[role_ids][]', '' %>
<p><%= submit_tag l(:button_change), :class => "small" %>
@ -141,4 +64,26 @@
<% end %>
</div>
<div class="splitcontentright">
<% if r.any? %>
<%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
<fieldset><legend><%=l(:label_member_new)%></legend>
<p><%= label_tag "principal_search", l(:label_principal_search) %><%= text_field_tag 'principal_search', nil %></p>
<%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
<div id="principals_for_new_member">
<%= render_principals_for_new_members(@project) %>
</div>
<p style="padding-top: 5px"><%= l(:label_role_plural) %>:
<% r.each do |role| %>
<label><%= check_box_tag 'membership[role_ids][]', role.id %> <%=h role %></label>
<% end %></p>
<p><%= submit_tag l(:button_add), :id => 'member-add-submit' %></p>
</fieldset>
<% end %>
<% end %>
</div>