allow timezone parameters to work correctly with charts
This commit is contained in:
parent
7b44f08dd5
commit
868882a0c9
@ -328,6 +328,9 @@ class ApplicationController < ActionController::Base
|
|||||||
# use the offset to find an appropriate timezone
|
# use the offset to find an appropriate timezone
|
||||||
def set_timezone_from_offset(offset)
|
def set_timezone_from_offset(offset)
|
||||||
offset = offset.to_i
|
offset = offset.to_i
|
||||||
|
# always set to UTC if offset is 0
|
||||||
|
return 'UTC' if offset == 0
|
||||||
|
|
||||||
# keep track of the currently matched time zone
|
# keep track of the currently matched time zone
|
||||||
current_zone = nil
|
current_zone = nil
|
||||||
|
|
||||||
|
@ -99,9 +99,15 @@ module FeedHelper
|
|||||||
empty_clone.attribute_names.each { |attr| empty_clone[attr] = nil }
|
empty_clone.attribute_names.each { |attr| empty_clone[attr] = nil }
|
||||||
return empty_clone
|
return empty_clone
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# get the time floored to the correct number of seconds
|
||||||
def get_floored_time(input_time, seconds)
|
def get_floored_time(input_time, seconds)
|
||||||
return Time.zone.at((input_time.to_f / seconds).floor * seconds)
|
floored_seconds = (input_time.to_f / seconds).floor * seconds
|
||||||
|
# offset the seconds by the current time zone offset
|
||||||
|
offset_seconds = Time.zone.now.utc_offset
|
||||||
|
return Time.at(floored_seconds - offset_seconds)
|
||||||
end
|
end
|
||||||
|
|
||||||
# slice feed into timescales
|
# slice feed into timescales
|
||||||
def feeds_into_timescales(feeds, params)
|
def feeds_into_timescales(feeds, params)
|
||||||
|
|
||||||
|
@ -39,9 +39,11 @@ class DailyFeed < ActiveRecord::Base
|
|||||||
return output
|
return output
|
||||||
end
|
end
|
||||||
|
|
||||||
# checks to see if this is a daily feed
|
# checks to see if this is a daily feed, only works for timezone UTC (offset == 0)
|
||||||
def self.valid_params(params)
|
def self.valid_params(params)
|
||||||
(params[:timescale] == '1440' || params[:sum] == '1440' || params[:average] == '1440' || params[:median] == '1440') ? true : false
|
daily_params = (params[:timescale] == '1440' || params[:sum] == '1440' || params[:average] == '1440' || params[:median] == '1440') ? true : false
|
||||||
|
return daily_params && (Time.zone.name == 'UTC')
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user