diff --git a/.loadpath b/.loadpath new file mode 100644 index 00000000..c4415b3d --- /dev/null +++ b/.loadpath @@ -0,0 +1,5 @@ + + + + + diff --git a/.project b/.project new file mode 100644 index 00000000..6a0b4c40 --- /dev/null +++ b/.project @@ -0,0 +1,18 @@ + + + trunk_fixes + + + + + + org.rubypeople.rdt.core.rubybuilder + + + + + + org.rubypeople.rdt.core.rubynature + org.radrails.rails.core.railsnature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..69197b5b --- /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 f468063e..53453c0d 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 80011f4b..b931501a 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