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
This commit is contained in:
parent
e8d0c26e43
commit
6a8be88ad6
|
@ -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>
|
|
@ -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>
|
|
@ -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
|
|
@ -72,6 +72,11 @@ class User < ActiveRecord::Base
|
|||
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
|
||||
yield
|
||||
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue