aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/App/Controller/Dashboard.pm17
-rw-r--r--t/app/controller/dashboard.t13
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],
},