summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-12-03 08:26:08 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-12-03 08:26:08 +0000
commite22159a3cb721384de38166e4a014f08ebe08829 (patch)
tree8e1c9f43be68ff5aea29199e47a43ed335aca896 /app
parent8aa6089171793590c1f8c92f123ea556b577fcb9 (diff)
downloadredmine-e22159a3cb721384de38166e4a014f08ebe08829.tar.gz
redmine-e22159a3cb721384de38166e4a014f08ebe08829.zip
Sort members on the DB side.
git-svn-id: http://svn.redmine.org/redmine/trunk@16040 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/models/member.rb7
-rw-r--r--app/views/projects/settings/_members.html.erb2
2 files changed, 8 insertions, 1 deletions
diff --git a/app/models/member.rb b/app/models/member.rb
index 6e7cf258b..b37a02f48 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -31,6 +31,13 @@ class Member < ActiveRecord::Base
scope :active, lambda { joins(:principal).where(:users => {:status => Principal::STATUS_ACTIVE})}
+ # Sort by first role and principal
+ scope :sorted, lambda {
+ includes(:member_roles, :roles, :principal).
+ reorder("#{Role.table_name}.position").
+ order(Principal.fields_for_order_statement)
+ }
+
alias :base_reload :reload
def reload(*args)
@managed_roles = nil
diff --git a/app/views/projects/settings/_members.html.erb b/app/views/projects/settings/_members.html.erb
index fe1295d2c..05707fe78 100644
--- a/app/views/projects/settings/_members.html.erb
+++ b/app/views/projects/settings/_members.html.erb
@@ -1,5 +1,5 @@
<% roles = Role.find_all_givable
- members = @project.memberships.active.includes(:member_roles, :roles, :principal).to_a.sort %>
+ members = @project.memberships.active.sorted.to_a %>
<p><%= link_to l(:label_member_new), new_project_membership_path(@project), :remote => true, :class => "icon icon-add" %></p>