Template error when user's timezone isn't set and UTC timestamps are used (#1889).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1801 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2008-09-11 17:45:21 +00:00
parent a592d6c40d
commit 8d6b32645c
3 changed files with 10 additions and 2 deletions

View 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)

View 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?

View 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