]> source.dussan.org Git - redmine.git/commitdiff
Template error when user's timezone isn't set and UTC timestamps are used (#1889).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 11 Sep 2008 17:45:21 +0000 (17:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 11 Sep 2008 17:45:21 +0000 (17:45 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1801 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/application_helper.rb
app/models/user.rb
test/unit/helpers/application_helper_test.rb

index 78e5bdc653255b5031377a9e972dcef2306c9758..cc26127d6a2a8e6d667e96358ed91d0472c7bca5 100644 (file)
@@ -95,7 +95,7 @@ module ApplicationHelper
     return nil unless time
     time = time.to_time if time.is_a?(String)
     zone = User.current.time_zone
-    local = zone ? time.in_time_zone(zone) : (time.utc? ? time.utc_to_local : time)
+    local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time)
     @date_format ||= (Setting.date_format.blank? || Setting.date_format.size < 2 ? l(:general_fmt_date) : Setting.date_format)
     @time_format ||= (Setting.time_format.blank? ? l(:general_fmt_time) : Setting.time_format)
     include_date ? local.strftime("#{@date_format} #{@time_format}") : local.strftime(@time_format)
index 4f82f61b20b07f7e333b739d0ca5b84a048b45cc..132896ad9f5ca6b271a92efb01ef8175eae71efe 100644 (file)
@@ -144,7 +144,7 @@ class User < ActiveRecord::Base
   end
   
   def time_zone
-    self.pref.time_zone.nil? ? nil : TimeZone[self.pref.time_zone]
+    @time_zone ||= (self.pref.time_zone.blank? ? nil : TimeZone[self.pref.time_zone])
   end
   
   def wants_comments_in_reverse_order?
index 452c0b535394440d7915e110c1245ad3b7802abe..6db029adabbf4d0ccd3ecd58b825abc453f425e2 100644 (file)
@@ -351,4 +351,12 @@ EXPECTED
     assert_equal now.strftime('%d %m %Y %H %M'), format_time(now)
     assert_equal now.strftime('%H %M'), format_time(now, false)
   end
+  
+  def test_utc_time_format
+    now = Time.now.utc
+    Setting.date_format = '%d %m %Y'
+    Setting.time_format = '%H %M'
+    assert_equal Time.now.strftime('%d %m %Y %H %M'), format_time(now)
+    assert_equal Time.now.strftime('%H %M'), format_time(now, false)
+  end
 end