diff options
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin/AreaStats.pm | 7 | ||||
-rw-r--r-- | t/app/controller/area_stats.t | 12 | ||||
-rw-r--r-- | templates/web/base/admin/areastats/area.html | 2 |
3 files changed, 19 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin/AreaStats.pm b/perllib/FixMyStreet/App/Controller/Admin/AreaStats.pm index 2357e0025..2058ea872 100644 --- a/perllib/FixMyStreet/App/Controller/Admin/AreaStats.pm +++ b/perllib/FixMyStreet/App/Controller/Admin/AreaStats.pm @@ -207,7 +207,12 @@ sub stats : Private { join => 'problem' } )->first; - $c->stash->{average} = int( ($comments->get_column('time')||0)/ 60 / 60 / 24 + 0.5 ); + my $raw_average = $comments->get_column('time'); + if (defined $raw_average) { + $c->stash->{average} = int( $raw_average / 60 / 60 / 24 + 0.5 ); + } else { + $c->stash->{average} = -1; + } } sub load_user_body : Private { diff --git a/t/app/controller/area_stats.t b/t/app/controller/area_stats.t index 36e532c0e..ce2e3d7d6 100644 --- a/t/app/controller/area_stats.t +++ b/t/app/controller/area_stats.t @@ -98,6 +98,8 @@ FixMyStreet::override_config { $mech->text_contains('Potholes6'); $mech->text_contains('Traffic lights13'); + + $mech->text_contains('average time between issue being opened and set to another status was 0 days'); }; subtest 'shows correct stats to area user' => sub { @@ -212,6 +214,16 @@ FixMyStreet::override_config { $mech->get_ok("/admin/areastats/$body_id?area=20720"); $mech->text_contains('average time between issue being opened and set to another status was 4 days'); }; + + subtest 'shows no problems changed state if no average' => sub { + for my $p (@scheduled_problems, @fixed_problems, @closed_problems) { + $p->comments->delete; + } + + $mech->get_ok("/admin/areastats/$body_id?area=20720"); + $mech->text_contains('17 opened, 0 scheduled, 0 closed, 0 fixed'); + $mech->text_contains('no problems changed state'); + } }; END { diff --git a/templates/web/base/admin/areastats/area.html b/templates/web/base/admin/areastats/area.html index 1b88b5885..a7330692d 100644 --- a/templates/web/base/admin/areastats/area.html +++ b/templates/web/base/admin/areastats/area.html @@ -47,7 +47,7 @@ [% END %] </table> -[% IF average > 0 %] +[% IF average >= 0 %] <p>[% tprintf(loc('In the last month – average time between issue being opened and set to another status was %s days'), average) %]</p> [% ELSE %] <p>[% loc('In the last month no problems changed state') %]</p> |