diff options
author | Dave Arter <davea@mysociety.org> | 2016-10-19 13:51:19 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-10-26 16:22:14 +0100 |
commit | 428466512607541a1d82de6e721439a0d0e7446c (patch) | |
tree | 97d4c9ba85670cbd4482ca16c2badb38398cb9b4 /perllib/FixMyStreet/App/Controller | |
parent | e1636f3c8cb837c3debe28da7532778493ebad54 (diff) |
Redirect to correct cobrand when category changed.
Diffstat (limited to 'perllib/FixMyStreet/App/Controller')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin.pm | 12 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 12 |
2 files changed, 11 insertions, 13 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 748842df5..f0a1fa95b 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -837,18 +837,6 @@ Handles changing a problem's category and the complexity that comes with it. sub report_edit_category : Private { my ($self, $c, $problem) = @_; - # TODO: It's possible to assign a category belonging to a district - # council, meaning a 404 when the page is reloaded because the - # problem is no longer included in the current cobrand's - # problem_restriction. - # See mysociety/fixmystreetforcouncils#44 - # We could - # a) only allow the current body's categories to be chosen, - # b) show a warning about the impending change of body - # c) bounce the user to the report page on fms.com - # Not too worried about this right now, as it forms part of a bigger - # concern outlined in the above ticket and - # mysociety/fixmystreetforcouncils#17 if ((my $category = $c->get_param('category')) ne $problem->category) { $problem->category($category); my @contacts = grep { $_->category eq $problem->category } @{$c->stash->{contacts}}; diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm index f69bdc8c0..73479c584 100644 --- a/perllib/FixMyStreet/App/Controller/Report.pm +++ b/perllib/FixMyStreet/App/Controller/Report.pm @@ -390,7 +390,17 @@ sub inspect : Private { anonymous => 0, } ); } - $c->res->redirect( $c->uri_for( '/report', $problem->id ) ); + # This problem might no longer be visible on the current cobrand, + # if its body has changed (e.g. by virtue of the category changing) + # so redirect to a cobrand where it can be seen if necessary + my $redirect_uri; + if ( $c->cobrand->is_council && !$c->cobrand->owns_problem($problem) ) { + $redirect_uri = $c->cobrand->base_url_for_report( $problem ) . $problem->url; + } else { + $redirect_uri = $c->uri_for( $problem->url ); + } + $c->log->debug( "Redirecting to: " . $redirect_uri ); + $c->res->redirect( $redirect_uri ); } } }; |