diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index c2a17e359..aa2927c83 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -162,7 +162,7 @@ class ProjectsController < ApplicationController return end - @users_by_role = @project.users_by_role + @principals_by_role = @project.principals_by_role @subprojects = @project.children.visible.to_a @news = @project.news.limit(5).includes(:author, :project).reorder("#{News.table_name}.created_on DESC").to_a @trackers = @project.rolled_up_trackers.visible diff --git a/app/models/project.rb b/app/models/project.rb index 526d479f3..e68e44054 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -507,12 +507,12 @@ class Project < ActiveRecord::Base end end - # Returns a hash of project users grouped by role - def users_by_role - members.includes(:user, :roles).inject({}) do |h, m| + # Returns a hash of project users/groups grouped by role + def principals_by_role + memberships.includes(:principal, :roles).inject({}) do |h, m| m.roles.each do |r| h[r] ||= [] - h[r] << m.user + h[r] << m.principal end h end diff --git a/app/views/projects/_members_box.html.erb b/app/views/projects/_members_box.html.erb index 1a088ead4..e915ab910 100644 --- a/app/views/projects/_members_box.html.erb +++ b/app/views/projects/_members_box.html.erb @@ -1,8 +1,8 @@ - <% if @users_by_role.any? %> + <% if @principals_by_role.any? %>
<%= role %>: <%= @users_by_role[role].sort.collect{|u| link_to_user u}.join(", ").html_safe %>
+ <% @principals_by_role.keys.sort.each do |role| %> +<%= role %>: <%= @principals_by_role[role].sort.collect{|p| link_to_user p}.join(", ").html_safe %>
<% end %>