aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Black <andrewdblack@googlemail.com>2013-08-30 15:50:46 +0100
committerDave Whiteland <dave@mysociety.org>2013-11-07 12:41:12 +0000
commitc992dc56317554b2fb698cc91bc815f40a273e30 (patch)
treeb811936ac58892d3402b98a884d119ea2733ebfc
parent5263ca87456f7d5d39b500731499ad20c6dd8636 (diff)
Create a single date fields and parse as DD/MM/YYYY
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm25
-rw-r--r--templates/web/default/admin/stats.html6
2 files changed, 12 insertions, 19 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index 07bd61cbb..e88c780fd 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -9,6 +9,8 @@ use POSIX qw(strftime strcoll);
use Digest::SHA qw(sha1_hex);
use mySociety::EmailUtil qw(is_valid_email);
use if !$ENV{TRAVIS}, 'Image::Magick';
+use DateTime::Format::Strptime;
+
use FixMyStreet::SendReport;
@@ -1076,26 +1078,15 @@ sub stats : Path('stats') : Args(0) {
if ( $c->req->param('getcounts') ) {
my ( $start_date, $end_date, @errors );
+ my $parser = DateTime::Format::Strptime->new( pattern => '%d/%m/%Y' );
+
+ $start_date = $parser-> parse_datetime ( $c->req->param('start_date') );
- eval {
- $start_date = DateTime->new(
- year => $c->req->param('start_date_year'),
- month => $c->req->param('start_date_month'),
- day => $c->req->param('start_date_day'),
- );
- };
-
- push @errors, _('Invalid start date') if $@;
+ push @errors, _('Invalid start date') unless defined $start_date;
- eval {
- $end_date = DateTime->new(
- year => $c->req->param('end_date_year'),
- month => $c->req->param('end_date_month'),
- day => $c->req->param('end_date_day'),
- );
- };
+ $end_date = $parser-> parse_datetime ( $c->req->param('end_date') ) ;
- push @errors, _('Invalid end date') if $@;
+ push @errors, _('Invalid end date') unless defined $end_date;
$c->stash->{errors} = \@errors;
$c->stash->{start_date} = $start_date;
diff --git a/templates/web/default/admin/stats.html b/templates/web/default/admin/stats.html
index 02b55627d..2a6e276e2 100644
--- a/templates/web/default/admin/stats.html
+++ b/templates/web/default/admin/stats.html
@@ -61,11 +61,13 @@
<form method="post" action="[% c.uri_for('stats') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
<p>
- <label for="start_date">[% loc('Start Year:') %]</label><input type="text" name="start_date" id="start_date" size="5" value="[% start_date ? start_date.year : '' | html %]" />
+ <label for="start_date">[% loc('Start Date:') %]</label><input type="text" name="start_date" id="start_date"
+ value="[% start_date ? start_date.strftime( '%d/%m/%Y') : '' | html %]" />
</p>
<p>
- <label for="end_date">[% loc('End Year:') %]</label><input type="text" name="end_date" id="end_date" size="5" value="[% end_date ? end_date.year : '' | html %]" />
+ <label for="end_date">[% loc('End Date:') %]</label><input type="text" name="end_date" id="end_date" size="5"
+ value="[% end_date ? end_date.strftime( '%d/%m/%Y') : '' | html %]" />
</p>
<p>