diff options
-rw-r--r-- | perllib/FixMyStreet/Cobrand/Bromley.pm | 17 |
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) } ]; } |