From: Kohei Yoshino Date: Tue, 20 Nov 2018 22:46:54 +0000 (-0500) Subject: Bug 324535 - Allow the use of relative dates in charts X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=893feae8145503638fd54eef777f72e4ac6c491e;p=thirdparty%2Fbugzilla.git Bug 324535 - Allow the use of relative dates in charts --- diff --git a/Bugzilla/Chart.pm b/Bugzilla/Chart.pm index 9dce19eb9..6c9823c58 100644 --- a/Bugzilla/Chart.pm +++ b/Bugzilla/Chart.pm @@ -19,6 +19,7 @@ use warnings; use Bugzilla::Error; use Bugzilla::Util; +use Bugzilla::Util::DateTime; use Bugzilla::Series; use Date::Format; @@ -87,7 +88,7 @@ sub init { # Make sure the dates are ones we are able to interpret foreach my $date ('datefrom', 'dateto') { if ($self->{$date}) { - $self->{$date} = str2time($self->{$date}) + $self->{$date} = parse_date($self->{$date}) || ThrowUserError("illegal_date", { date => $self->{$date}}); } } diff --git a/extensions/BMO/lib/Util.pm b/Bugzilla/Util/DateTime.pm similarity index 83% rename from extensions/BMO/lib/Util.pm rename to Bugzilla/Util/DateTime.pm index dc9c904f9..cb23c8058 100644 --- a/extensions/BMO/lib/Util.pm +++ b/Bugzilla/Util/DateTime.pm @@ -5,7 +5,7 @@ # This Source Code Form is "Incompatible With Secondary Licenses", as # defined by the Mozilla Public License, v. 2.0. -package Bugzilla::Extension::BMO::Util; +package Bugzilla::Util::DateTime; use 5.10.1; use strict; @@ -20,8 +20,7 @@ use base qw(Exporter); our @EXPORT = qw( string_to_datetime time_to_datetime - parse_date - is_active_status_field ); + parse_date ); sub string_to_datetime { my $input = shift; @@ -75,18 +74,4 @@ sub parse_date { return str2time($str); } -sub is_active_status_field { - my ($field) = @_; - - if ($field->type == FIELD_TYPE_EXTENSION - && $field->isa('Bugzilla::Extension::TrackingFlags::Flag') - && $field->flag_type eq 'tracking' - && $field->name =~ /_status_/ - ) { - return $field->is_active; - } - - return 0; -} - 1; diff --git a/extensions/BMO/lib/Reports/ReleaseTracking.pm b/extensions/BMO/lib/Reports/ReleaseTracking.pm index 9fba1e14b..1a4c10719 100644 --- a/extensions/BMO/lib/Reports/ReleaseTracking.pm +++ b/extensions/BMO/lib/Reports/ReleaseTracking.pm @@ -13,7 +13,6 @@ use warnings; use Bugzilla::Constants; use Bugzilla::Error; -use Bugzilla::Extension::BMO::Util; use Bugzilla::Field; use Bugzilla::FlagType; use Bugzilla::Util qw(trick_taint validate_date); @@ -288,7 +287,7 @@ sub report { foreach my $product (@usable_products) { my @fields = sort { $a->sortkey <=> $b->sortkey } - grep { is_active_status_field($_) } + grep { _is_active_status_field($_) } Bugzilla->active_custom_fields({ product => $product }); my @field_ids = map { $_->id } @fields; if (!scalar @fields) { @@ -513,4 +512,18 @@ sub _parse_query { return $query; } +sub _is_active_status_field { + my ($field) = @_; + + if ($field->type == FIELD_TYPE_EXTENSION + && $field->isa('Bugzilla::Extension::TrackingFlags::Flag') + && $field->flag_type eq 'tracking' + && $field->name =~ /_status_/ + ) { + return $field->is_active; + } + + return 0; +} + 1; diff --git a/extensions/BMO/lib/Reports/UserActivity.pm b/extensions/BMO/lib/Reports/UserActivity.pm index 8dfe0c5cd..4a4de8bb8 100644 --- a/extensions/BMO/lib/Reports/UserActivity.pm +++ b/extensions/BMO/lib/Reports/UserActivity.pm @@ -12,9 +12,9 @@ use strict; use warnings; use Bugzilla::Error; -use Bugzilla::Extension::BMO::Util; use Bugzilla::User; use Bugzilla::Util qw(trim); +use Bugzilla::Util::DateTime; use DateTime; sub report {