mirror of
https://github.com/meineerde/redmine.git
synced 2025-10-17 17:01:01 +00:00
Sort members on the DB side.
git-svn-id: http://svn.redmine.org/redmine/trunk@16040 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
8aa6089171
commit
e22159a3cb
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -38,6 +38,12 @@ class MemberTest < ActiveSupport::TestCase
|
||||
@jsmith = Member.find(1)
|
||||
end
|
||||
|
||||
def test_sorted_scope_on_project_members
|
||||
members = Project.find(1).members.sorted.to_a
|
||||
roles = members.map {|m| m.roles.sort.first}
|
||||
assert_equal roles, roles.sort
|
||||
end
|
||||
|
||||
def test_create
|
||||
member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
|
||||
assert member.save
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user