diff options
author | Matthew Somerville <matthew@mysociety.org> | 2020-04-30 13:51:42 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2020-05-06 15:59:03 +0100 |
commit | 683b188b288fe43526e1649c784fa44435559655 (patch) | |
tree | 5d446f1daa1e96afabec060b0e3e678a8582ea27 /perllib/FixMyStreet/App/Controller/Admin/Reports.pm | |
parent | 30dfd35daaf0424b2e2bc126485952c26ac9d310 (diff) |
Move per-row Contact lookup to the database.
On admin report lists, and in front-end lists when an inspector, each
row was querying the database for `category_display`. We create a new
relationship for this query, and join/prefetch it wherever we request
this data.
Include staff joins on /around page, copying what happens on /reports
to prevent more lookups there too. Also add some joins for user email
in admin report list.
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Admin/Reports.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin/Reports.pm | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin/Reports.pm b/perllib/FixMyStreet/App/Controller/Admin/Reports.pm index 7300fe676..88c4380fc 100644 --- a/perllib/FixMyStreet/App/Controller/Admin/Reports.pm +++ b/perllib/FixMyStreet/App/Controller/Admin/Reports.pm @@ -110,6 +110,7 @@ sub index : Path { { join => 'user', '+columns' => 'user.email', + prefetch => 'contact', rows => 50, order_by => $order, } @@ -166,7 +167,13 @@ sub index : Path { my $problems = $c->cobrand->problems->search( $query, - { order_by => $order, rows => 50 } + { + '+columns' => ['user.email'], + join => 'user', + prefetch => 'contact', + order_by => $order, + rows => 50 + } )->page( $p_page ); $c->stash->{problems} = [ $problems->all ]; $c->stash->{problems_pager} = $problems->pager; |