diff --git a/app/models/member.rb b/app/models/member.rb index 0b73def..06b90bf 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -37,6 +37,10 @@ class Member < ActiveRecord::Base reorder("#{Role.table_name}.position"). order(Principal.fields_for_order_statement) } + scope :sorted_by_project, lambda { + includes(:project). + reorder("#{Project.table_name}.lft") + } alias :base_reload :reload def reload(*args) diff --git a/app/views/principal_memberships/_index.html.erb b/app/views/principal_memberships/_index.html.erb index b451f53..e434190 100644 --- a/app/views/principal_memberships/_index.html.erb +++ b/app/views/principal_memberships/_index.html.erb @@ -1,6 +1,8 @@ +<% memberships = principal.memberships.preload(:member_roles => :role).sorted_by_project.to_a %> +
<%= link_to l(:label_add_projects), new_principal_membership_path(principal), :remote => true, :class => "icon icon-add" %>
-<% if principal.memberships.any? %> +<% if memberships.any? %><%= l(:label_project) %> | @@ -9,7 +11,7 @@ <%= call_table_header_hook principal %>
---|