diff options
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Dashboard.pm | 17 | ||||
-rw-r--r-- | t/app/controller/dashboard.t | 13 |
2 files changed, 16 insertions, 14 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Dashboard.pm b/perllib/FixMyStreet/App/Controller/Dashboard.pm index b47a1f54b..b5f65d8c8 100644 --- a/perllib/FixMyStreet/App/Controller/Dashboard.pm +++ b/perllib/FixMyStreet/App/Controller/Dashboard.pm @@ -128,15 +128,16 @@ sub index : Path : Args(0) { my $dtf = $c->model('DB')->storage->datetime_parser; my %counts; - my $t = DateTime->today; + my $now = DateTime->now( time_zone => 'local' ); + my $t = $now->clone->truncate( to => 'day' ); $counts{wtd} = $c->forward( 'updates_search', - [ $dtf->format_datetime( $t->subtract( days => $t->dow - 1 ) ) ] ); + [ $dtf->format_datetime( $t->clone->subtract( days => $t->dow - 1 ) ) ] ); $counts{week} = $c->forward( 'updates_search', - [ $dtf->format_datetime( DateTime->now->subtract( weeks => 1 ) ) ] ); + [ $dtf->format_datetime( $now->clone->subtract( weeks => 1 ) ) ] ); $counts{weeks} = $c->forward( 'updates_search', - [ $dtf->format_datetime( DateTime->now->subtract( weeks => 4 ) ) ] ); + [ $dtf->format_datetime( $now->clone->subtract( weeks => 4 ) ) ] ); $counts{ytd} = $c->forward( 'updates_search', - [ $dtf->format_datetime( DateTime->today->set( day => 1, month => 1 ) ) ] ); + [ $dtf->format_datetime( $t->clone->set( day => 1, month => 1 ) ) ] ); $c->stash->{problems} = \%counts; @@ -152,16 +153,16 @@ sub index : Path : Args(0) { } my $params = { %$prob_where, - 'me.confirmed' => { '>=', $dtf->format_datetime( DateTime->now->subtract( days => 30 ) ) }, + 'me.confirmed' => { '>=', $dtf->format_datetime( $now->clone->subtract( days => 30 ) ) }, }; my $problems_rs = $c->cobrand->problems->search( $params ); my @problems = $problems_rs->all; my %problems; foreach (@problems) { - if ($_->confirmed >= DateTime->now->subtract(days => 7)) { + if ($_->confirmed >= $now->clone->subtract(days => 7)) { push @{$problems{1}}, $_; - } elsif ($_->confirmed >= DateTime->now->subtract(days => 14)) { + } elsif ($_->confirmed >= $now->clone->subtract(days => 14)) { push @{$problems{2}}, $_; } else { push @{$problems{3}}, $_; diff --git a/t/app/controller/dashboard.t b/t/app/controller/dashboard.t index 5e4b4cbeb..9a6d3e0f9 100644 --- a/t/app/controller/dashboard.t +++ b/t/app/controller/dashboard.t @@ -111,34 +111,35 @@ FixMyStreet::override_config { is_deeply $reports, {}, 'No reports'; } + my $now = DateTime->now(time_zone => 'local'); foreach my $test ( { desc => 'confirmed today with no state', - dt => DateTime->now, + dt => $now, counts => [1,1,1,1], report_counts => [1, 0, 0], }, { desc => 'confirmed last 7 days with no state', - dt => DateTime->now->subtract( days => 6, hours => 23 ), + dt => $now->clone->subtract( days => 6, hours => 23 ), counts => [1,2,2,2], report_counts => [2, 0, 0], }, { desc => 'confirmed last 8 days with no state', - dt => DateTime->now->subtract( days => 8 ), + dt => $now->clone->subtract( days => 8 ), counts => [1,2,3,3], report_counts => [2, 1, 0], }, { - desc => 'confirmed last 4 weeks with no state', - dt => DateTime->now->subtract( weeks => 2 ), + desc => 'confirmed last 2 weeks with no state', + dt => $now->clone->subtract( weeks => 2 ), counts => [1,2,4,4], report_counts => [2, 1, 1], }, { desc => 'confirmed this year with no state', - dt => DateTime->now->subtract( weeks => 7 ), + dt => $now->clone->subtract( weeks => 7 ), counts => [1,2,4,5], report_counts => [2, 1, 1], }, |