aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/Cobrand/Bromley.pm17
1 files changed, 14 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Bromley.pm b/perllib/FixMyStreet/Cobrand/Bromley.pm
index 55a366b60..6def2b2b1 100644
--- a/perllib/FixMyStreet/Cobrand/Bromley.pm
+++ b/perllib/FixMyStreet/Cobrand/Bromley.pm
@@ -5,6 +5,8 @@ use strict;
use warnings;
use utf8;
use DateTime::Format::W3CDTF;
+use DateTime::Format::Flexible;
+use Try::Tiny;
sub council_area_id { return 2482; }
sub council_area { return 'Bromley'; }
@@ -386,15 +388,24 @@ sub munge_load_and_group_problems {
# Date range
my $dtf = $c->model('DB')->storage->datetime_parser;
+ my $dtp = DateTime::Format::Flexible->new;
my $start_default = DateTime->today(time_zone => FixMyStreet->time_zone || FixMyStreet->local_time_zone)->subtract(months => 3);
$c->stash->{start_date} = $c->get_param('start_date') || $start_default->strftime('%Y-%m-%d');
$c->stash->{end_date} = $c->get_param('end_date');
- my $start_date = $dtf->parse_datetime($c->stash->{start_date});
+ my $start_date = try {
+ $dtp->parse_datetime($c->stash->{start_date}, european => 1);
+ } catch {
+ $start_default;
+ };
$where->{'me.confirmed'} = { '>=', $dtf->format_datetime($start_date) };
- if (my $end_date = $c->stash->{end_date}) {
+
+ my $end_date = try {
+ $dtp->parse_datetime($c->stash->{end_date}, european => 1);
+ };
+ if ($end_date) {
my $one_day = DateTime::Duration->new( days => 1 );
- $end_date = $dtf->parse_datetime($end_date) + $one_day;
+ $end_date += $one_day;
$where->{'me.confirmed'} = [ -and => $where->{'me.confirmed'}, { '<', $dtf->format_datetime($end_date) } ];
}