diff options
Diffstat (limited to 'perllib/FixMyStreet/App')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Reports.pm | 13 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Model/DB.pm | 11 |
2 files changed, 21 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Reports.pm b/perllib/FixMyStreet/App/Controller/Reports.pm index 20ec8f0a2..b597cb7a8 100644 --- a/perllib/FixMyStreet/App/Controller/Reports.pm +++ b/perllib/FixMyStreet/App/Controller/Reports.pm @@ -414,8 +414,17 @@ sub load_and_group_problems : Private { order_by => $c->stash->{sort_order}, rows => $c->cobrand->reports_per_page, }; - if ($c->user_exists && $c->stash->{body} && $c->user->has_permission_to('planned_reports', $c->stash->{body}->id)) { - $filter->{prefetch} = 'user_planned_reports'; + if ($c->user_exists && $c->stash->{body}) { + my $bid = $c->stash->{body}->id; + my $prefetch = []; + if ($c->user->has_permission_to('planned_reports', $bid)) { + push @$prefetch, 'user_planned_reports'; + } + if ($c->user->has_permission_to('report_edit_priority', $bid) || $c->user->has_permission_to('report_inspect', $bid)) { + push @$prefetch, 'response_priority'; + } + $prefetch = $prefetch->[0] if @$prefetch == 1; + $filter->{prefetch} = $prefetch; } if (defined $c->stash->{filter_status}{shortlisted}) { diff --git a/perllib/FixMyStreet/App/Model/DB.pm b/perllib/FixMyStreet/App/Model/DB.pm index 9d09186b8..ffd867485 100644 --- a/perllib/FixMyStreet/App/Model/DB.pm +++ b/perllib/FixMyStreet/App/Model/DB.pm @@ -5,19 +5,28 @@ use strict; use warnings; use FixMyStreet; +use Moose; + +with 'Catalyst::Component::InstancePerContext'; __PACKAGE__->config( schema_class => 'FixMyStreet::DB::Schema', connect_info => sub { FixMyStreet::DB->schema->storage->dbh }, ); +sub build_per_context_instance { + my ( $self, $c ) = @_; + $self->schema->cache({}); + return $self; +} + =head1 NAME FixMyStreet::App::Model::DB - Catalyst DBIC Schema Model =head1 DESCRIPTION -L<Catalyst::Model::DBIC::Schema> Model using schema L<FixMyStreet::DB> +L<Catalyst::Model::DBIC::Schema> Model using schema L<FixMyStreet::DB::Schema> =cut |