aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB/ResultSet/UserPlannedReport.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/DB/ResultSet/UserPlannedReport.pm')
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/UserPlannedReport.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/DB/ResultSet/UserPlannedReport.pm b/perllib/FixMyStreet/DB/ResultSet/UserPlannedReport.pm
index 7e16e2dd3..460a4912e 100644
--- a/perllib/FixMyStreet/DB/ResultSet/UserPlannedReport.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/UserPlannedReport.pm
@@ -6,7 +6,17 @@ use warnings;
sub active {
my $rs = shift;
- $rs->search({ removed => undef });
+
+ # If we have been prefetched we can't use `active` as that'll blow away the
+ # cache and query the DB due to the `removed IS NULL` clause. So let's do
+ # the filtering here instead, if the query has been prefetched.
+ if ( $rs->get_cache ) {
+ my @users = grep { !defined($_->removed) } $rs->all;
+ $rs->set_cache(\@users);
+ $rs;
+ } else {
+ $rs->search({ removed => undef });
+ }
}
sub for_report {