From e2a78b3d76218c4615e1c9b4d7b0c818ce5fcd45 Mon Sep 17 00:00:00 2001 From: aaronmueller Date: Tue, 2 Mar 2010 14:17:12 +0100 Subject: [PATCH] Changed sorting of users global Removed sorting from SQL statements and other places and put it on a central sorting method. Used name(:lastname_firstname) for sorting users. --- app/models/group.rb | 4 ++++ app/models/member.rb | 4 ++-- app/models/principal.rb | 15 ++++++++++----- app/views/projects/settings/_members.rhtml | 2 +- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/app/models/group.rb b/app/models/group.rb index 80e096b..6499b8a 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -28,6 +28,10 @@ class Group < Principal def to_s lastname.to_s end + + def name(formatter = nil) + self.to_s + end def user_added(user) members.each do |member| diff --git a/app/models/member.rb b/app/models/member.rb index 3ef1afd..e4e8732 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -27,8 +27,8 @@ class Member < ActiveRecord::Base after_destroy :unwatch_from_permission_change - def name - self.user.name + def name(formatter = nil) + self.user.name(formatter) end alias :base_role_ids= :role_ids= diff --git a/app/models/principal.rb b/app/models/principal.rb index 8b46c7f..f468542 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -35,12 +35,17 @@ class Principal < ActiveRecord::Base before_create :set_default_empty_values def <=>(principal) - if self.class.name == principal.class.name - self.to_s.downcase <=> principal.to_s.downcase - else - # groups after users - principal.class.name <=> self.class.name + unless self.class.name == principal.class.name + return self.class.name <=> principal.class.name end + + a = (self.methods.include? "name")? self.name(:lastname_firstname) : self.to_s.downcase + b = (principal.methods.include? "name")? principal.name(:lastname_firstname) : principal.to_s.downcase + return a <=> b + end + + def name(formatter = nil) + self.user.name(formatter) end protected diff --git a/app/views/projects/settings/_members.rhtml b/app/views/projects/settings/_members.rhtml index c0d48b9..f4152cb 100644 --- a/app/views/projects/settings/_members.rhtml +++ b/app/views/projects/settings/_members.rhtml @@ -51,7 +51,7 @@ -<% principals = Principal.active.find(:all, :limit => 100, :order => 'type, login, lastname ASC') - @project.principals %> +<% principals = (Principal.active.find(:all) - @project.principals).sort %>
<% if roles.any? && principals.any? %> -- 1.5.6.5