diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-11-11 12:59:28 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-11-11 12:59:28 +0000 |
commit | 6a8be88ad613bcb2a2fa0189cbac0b68742dc357 (patch) | |
tree | 5cca08633daffdbf0f2422b0342df60c5b6eefe3 | |
parent | e8d0c26e4393b0d88f9c62afd12268269b1bd818 (diff) | |
download | redmine-6a8be88ad613bcb2a2fa0189cbac0b68742dc357.tar.gz redmine-6a8be88ad613bcb2a2fa0189cbac0b68742dc357.zip |
Sort users by their display names so that user dropdown lists are sorted alphabetically (#2015).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2010 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | .loadpath | 5 | ||||
-rw-r--r-- | .project | 18 | ||||
-rw-r--r-- | .settings/org.eclipse.core.resources.prefs | 5 | ||||
-rw-r--r-- | app/models/user.rb | 17 | ||||
-rw-r--r-- | test/unit/user_test.rb | 4 |
5 files changed, 38 insertions, 11 deletions
diff --git a/.loadpath b/.loadpath new file mode 100644 index 000000000..c4415b3d0 --- /dev/null +++ b/.loadpath @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<loadpath>
+ <pathentry path="" type="src"/>
+ <pathentry path="org.rubypeople.rdt.launching.RUBY_CONTAINER" type="con"/>
+</loadpath>
diff --git a/.project b/.project new file mode 100644 index 000000000..6a0b4c407 --- /dev/null +++ b/.project @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>trunk_fixes</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.rubypeople.rdt.core.rubybuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.rubypeople.rdt.core.rubynature</nature>
+ <nature>org.radrails.rails.core.railsnature</nature>
+ </natures>
+</projectDescription>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..69197b5bd --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +#Sun Nov 09 21:42:24 CET 2008
+eclipse.preferences.version=1
+encoding//app/helpers/ifpdf_helper.rb=UTF-8
+encoding//test/fixtures/mail_handler=UTF-8
+encoding/lang=UTF-8
diff --git a/app/models/user.rb b/app/models/user.rb index f468063ed..53453c0dc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -71,6 +71,11 @@ class User < ActiveRecord::Base # update hashed_password if password was set self.hashed_password = User.hash_password(self.password) if self.password end + + def reload(*args) + @name = nil + super + end def self.active with_scope :find => { :conditions => [ "status = ?", STATUS_ACTIVE ] } do @@ -120,8 +125,7 @@ class User < ActiveRecord::Base # Return user's full name for display def name(formatter = nil) - f = USER_FORMATS[formatter || Setting.user_format] || USER_FORMATS[:firstname_lastname] - eval '"' + f + '"' + @name ||= eval('"' + (USER_FORMATS[formatter || Setting.user_format] || USER_FORMATS[:firstname_lastname]) + '"') end def active? @@ -180,14 +184,9 @@ class User < ActiveRecord::Base token && (token.created_on > Setting.autologin.to_i.day.ago) && token.user.active? ? token.user : nil end + # Sort users by their display names def <=>(user) - if user.nil? - -1 - elsif lastname.to_s.downcase == user.lastname.to_s.downcase - firstname.to_s.downcase <=> user.firstname.to_s.downcase - else - lastname.to_s.downcase <=> user.lastname.to_s.downcase - end + self.to_s.downcase <=> user.to_s.downcase end def to_s diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 80011f4bf..b931501a1 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -85,9 +85,9 @@ class UserTest < Test::Unit::TestCase def test_name_format assert_equal 'Smith, John', @jsmith.name(:lastname_coma_firstname) Setting.user_format = :firstname_lastname - assert_equal 'John Smith', @jsmith.name + assert_equal 'John Smith', @jsmith.reload.name Setting.user_format = :username - assert_equal 'jsmith', @jsmith.name + assert_equal 'jsmith', @jsmith.reload.name end def test_lock |