aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2019-01-09 16:41:55 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2019-01-10 09:50:35 +0000
commit7b2b0132c372fb840d3d1e130ce9a66fbb9ee75b (patch)
tree520ac074a1288ab81e11de5f12257fda12eda55a
parent205a8eb0c57e6616a537d1d83a9a4578baf59149 (diff)
Allow override search to /report/new => /around.
This is so you can have a search box on an around page (wrapped in a form going to /report/new) to start a new search, ignoring the lat/lon that will also be submitted.
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm8
-rw-r--r--t/app/controller/report_new.t11
2 files changed, 15 insertions, 4 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index ce2fe19f6..f8789fa3a 100644
--- a/perllib/FixMyStreet/App/Controller/Report/New.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/New.pm
@@ -97,7 +97,7 @@ sub report_new : Path : Args(0) {
# work out the location for this report and do some checks
# Also show map if we're just updating the filters
return $c->forward('redirect_to_around')
- if !$c->forward('determine_location') || $c->get_param('filter_update');
+ if !$c->forward('determine_location') || $c->get_param('pc_override') || $c->get_param('filter_update');
# create a problem from the submitted details
$c->stash->{template} = "report/new/fill_in_details.html";
@@ -1558,6 +1558,12 @@ sub redirect_to_around : Private {
$params->{$_} = $c->get_param($_);
}
+ if (my $pc_override = $c->get_param('pc_override')) {
+ delete $params->{lat};
+ delete $params->{lon};
+ $params->{pc} = $pc_override;
+ }
+
my $csv = Text::CSV->new;
foreach (qw(status filter_category)) {
$csv->combine($c->get_param_list($_, 1));
diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t
index b796578a0..8290faac0 100644
--- a/t/app/controller/report_new.t
+++ b/t/app/controller/report_new.t
@@ -24,10 +24,15 @@ subtest "test that bare requests to /report/new get redirected" => sub {
MAPIT_URL => 'http://mapit.uk/',
}, sub {
$mech->get_ok('/report/new?pc=SW1A%201AA');
+ is $mech->uri->path, '/around', "went to /around";
+ is_deeply { $mech->uri->query_form }, { pc => 'SW1A 1AA' },
+ "pc correctly transferred";
+
+ $mech->get_ok('/report/new?pc_override=SW1A%201AA&latitude=51&longitude=-2');
+ is $mech->uri->path, '/around', "went to /around";
+ is_deeply { $mech->uri->query_form }, { pc => 'SW1A 1AA' },
+ "pc correctly transferred, lat/lon gone";
};
- is $mech->uri->path, '/around', "went to /around";
- is_deeply { $mech->uri->query_form }, { pc => 'SW1A 1AA' },
- "pc correctly transferred";
};
my %body_ids;