Fix various off-by-one errors in statistics time ranges (#40193)
Co-authored-by: Shlee <github@shl.ee>
This commit is contained in:
@@ -12,7 +12,7 @@ module Admin
|
|||||||
@pending_tags_count = pending_tags.async_count
|
@pending_tags_count = pending_tags.async_count
|
||||||
@pending_users_count = User.pending.async_count
|
@pending_users_count = User.pending.async_count
|
||||||
@system_checks = Admin::SystemCheck.perform(current_user)
|
@system_checks = Admin::SystemCheck.perform(current_user)
|
||||||
@time_period = (29.days.ago.to_date...Time.now.utc.to_date)
|
@time_period = (29.days.ago.to_date..Time.now.utc.to_date)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class Admin::Instances::ModerationNotesController < Admin::BaseController
|
|||||||
redirect_to admin_instance_path(@instance.domain, anchor: helpers.dom_id(@instance_moderation_note)), notice: I18n.t('admin.instances.moderation_notes.created_msg')
|
redirect_to admin_instance_path(@instance.domain, anchor: helpers.dom_id(@instance_moderation_note)), notice: I18n.t('admin.instances.moderation_notes.created_msg')
|
||||||
else
|
else
|
||||||
@instance_moderation_notes = @instance.moderation_notes.includes(:account).chronological
|
@instance_moderation_notes = @instance.moderation_notes.includes(:account).chronological
|
||||||
@time_period = (6.days.ago.to_date...Time.now.utc.to_date)
|
@time_period = (6.days.ago.to_date..Time.now.utc.to_date)
|
||||||
@action_logs = Admin::ActionLogFilter.new(target_domain: @instance.domain).results.limit(5)
|
@action_logs = Admin::ActionLogFilter.new(target_domain: @instance.domain).results.limit(5)
|
||||||
|
|
||||||
render 'admin/instances/show'
|
render 'admin/instances/show'
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ module Admin
|
|||||||
|
|
||||||
@instance_moderation_note = @instance.moderation_notes.new
|
@instance_moderation_note = @instance.moderation_notes.new
|
||||||
@instance_moderation_notes = @instance.moderation_notes.includes(:account).chronological
|
@instance_moderation_notes = @instance.moderation_notes.includes(:account).chronological
|
||||||
@time_period = (6.days.ago.to_date...Time.now.utc.to_date)
|
@time_period = (6.days.ago.to_date..Time.now.utc.to_date)
|
||||||
@action_logs = Admin::ActionLogFilter.new(target_domain: @instance.domain).results.limit(LOGS_LIMIT)
|
@action_logs = Admin::ActionLogFilter.new(target_domain: @instance.domain).results.limit(LOGS_LIMIT)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ module Admin
|
|||||||
end
|
end
|
||||||
|
|
||||||
def report_range
|
def report_range
|
||||||
(PERIOD_DAYS.ago.to_date...Time.now.utc.to_date)
|
(PERIOD_DAYS.ago.to_date..Time.now.utc.to_date)
|
||||||
end
|
end
|
||||||
|
|
||||||
def tag_params
|
def tag_params
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class ActivityTracker
|
|||||||
end
|
end
|
||||||
|
|
||||||
def sum(start_at, end_at = Time.now.utc)
|
def sum(start_at, end_at = Time.now.utc)
|
||||||
keys = (start_at.to_date...end_at.to_date).flat_map { |date| [key_at(date.to_time(:utc)), legacy_key_at(date)] }.uniq
|
keys = (start_at.to_date..end_at.to_date).flat_map { |date| [key_at(date.to_time(:utc)), legacy_key_at(date)] }.uniq
|
||||||
|
|
||||||
case @type
|
case @type
|
||||||
when :basic
|
when :basic
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ class Admin::Metrics::Measure::BaseMeasure
|
|||||||
end
|
end
|
||||||
|
|
||||||
def previous_time_period
|
def previous_time_period
|
||||||
((@start_at.to_date - length_of_period)..(@end_at.to_date - length_of_period))
|
((@start_at.to_date - (length_of_period + 1))..(@end_at.to_date - (length_of_period + 1)))
|
||||||
end
|
end
|
||||||
|
|
||||||
def length_of_period
|
def length_of_period
|
||||||
|
|||||||
@@ -17,6 +17,10 @@ RSpec.describe Admin::Metrics::Measure::TagUsesMeasure do
|
|||||||
let(:bob) { Fabricate(:account, domain: 'bob.example') }
|
let(:bob) { Fabricate(:account, domain: 'bob.example') }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
2.times do
|
||||||
|
travel_to(3.days.ago) { add_tag_history(alice) }
|
||||||
|
end
|
||||||
|
|
||||||
3.times do
|
3.times do
|
||||||
travel_to(2.days.ago) { add_tag_history(alice) }
|
travel_to(2.days.ago) { add_tag_history(alice) }
|
||||||
end
|
end
|
||||||
@@ -40,6 +44,8 @@ RSpec.describe Admin::Metrics::Measure::TagUsesMeasure do
|
|||||||
include(date: 1.day.ago.midnight.to_time, value: '4'),
|
include(date: 1.day.ago.midnight.to_time, value: '4'),
|
||||||
include(date: 0.days.ago.midnight.to_time, value: '1')
|
include(date: 0.days.ago.midnight.to_time, value: '1')
|
||||||
)
|
)
|
||||||
|
expect(subject.previous_total)
|
||||||
|
.to eq 2
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_tag_history(account)
|
def add_tag_history(account)
|
||||||
|
|||||||
Reference in New Issue
Block a user