aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller/Open311.pm
diff options
context:
space:
mode:
authorMatthew Somerville <matthew@mysociety.org>2020-06-10 14:39:40 +0100
committerMatthew Somerville <matthew@mysociety.org>2020-06-10 14:39:40 +0100
commit4351c0db779cab43566392e994f2323d57af3148 (patch)
treee0909130170f1a38efadef8bfa81e20347cde74b /perllib/FixMyStreet/App/Controller/Open311.pm
parentffb88ce81cadca0838fcbd1f849f46203a8a7bc8 (diff)
parent6088d10642da56cbea96446da9d9cd87c922ede5 (diff)
Merge branch 'issues/commercial/1906-he-anon-all'
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Open311.pm')
-rw-r--r--perllib/FixMyStreet/App/Controller/Open311.pm30
1 files changed, 11 insertions, 19 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Open311.pm b/perllib/FixMyStreet/App/Controller/Open311.pm
index b4b5d5e3a..73a91a62a 100644
--- a/perllib/FixMyStreet/App/Controller/Open311.pm
+++ b/perllib/FixMyStreet/App/Controller/Open311.pm
@@ -210,7 +210,7 @@ sub output_requests : Private {
};
# Look up categories for this council or councils
- my $problems = $c->cobrand->problems->search( $criteria, $attr );
+ my $problems = $c->stash->{rs}->search( $criteria, $attr );
my %statusmap = (
map( { $_ => 'open' } FixMyStreet::DB::Result::Problem->open_states() ),
@@ -220,6 +220,8 @@ sub output_requests : Private {
my @problemlist;
while ( my $problem = $problems->next ) {
+ $c->cobrand->call_hook(munge_problem_list => $problem);
+
my $id = $problem->id;
$problem->service( 'Web interface' ) unless $problem->service;
@@ -323,24 +325,8 @@ sub get_requests : Private {
if ( 'status' eq $param ) {
$value = {
'open' => [ FixMyStreet::DB::Result::Problem->open_states() ],
- 'closed' => [ FixMyStreet::DB::Result::Problem->fixed_states(), 'closed' ],
+ 'closed' => [ FixMyStreet::DB::Result::Problem->fixed_states(), FixMyStreet::DB::Result::Problem->closed_states() ],
}->{$value};
- } elsif ( 'agency_responsible' eq $param ) {
- my @valuelist;
- for my $agency (split(/\|/, $value)) {
- unless ($agency =~ m/^(\d+)$/) {
- $c->detach( 'error', [
- sprintf(_('Invalid agency_responsible value %s'),
- $value)
- ] );
- }
- my $agencyid = $1;
- # FIXME This seem to match the wrong entries
- # some times. Not sure when or why
- my $re = "(\\y$agencyid\\y|^$agencyid\\y|\\y$agencyid\$)";
- push(@valuelist, $re);
- }
- $value = \@valuelist;
} elsif ( 'has_photo' eq $param ) {
$value = undef;
$op = '!=' if 'true' eq $value;
@@ -363,6 +349,11 @@ sub get_requests : Private {
$criteria->{confirmed} = { '<', $c->get_param('end_date') };
}
+ $c->stash->{rs} = $c->cobrand->problems;
+ if (my $bodies = $c->get_param('agency_responsible')) {
+ $c->stash->{rs} = $c->stash->{rs}->to_body([ split(/\|/, $bodies) ]);
+ }
+
if ('rss' eq $c->stash->{format}) {
$c->stash->{type} = 'new_problems';
$c->forward( '/rss/lookup_type' );
@@ -384,7 +375,7 @@ sub rss_query : Private {
rows => $limit
};
- my $problems = $c->cobrand->problems->search( $criteria, $attr );
+ my $problems = $c->stash->{rs}->search( $criteria, $attr );
$c->stash->{problems} = $problems;
}
@@ -411,6 +402,7 @@ sub get_request : Private {
id => $id,
non_public => 0,
};
+ $c->stash->{rs} = $c->cobrand->problems;
$c->forward( 'output_requests', [ $criteria ] );
}