aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB/Result/Problem.pm
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2017-08-23 14:05:08 +0100
committerMatthew Somerville <matthew-github@dracos.co.uk>2017-08-23 14:05:08 +0100
commitdd34b1096c39feb322ca241f80e876c711d3929b (patch)
treec391a3149d93c2aae46cd8da2d3c8423ec56e697 /perllib/FixMyStreet/DB/Result/Problem.pm
parentf0f863865a270d9a508e8c3c273a31764555e60f (diff)
parentd217e9be67c0f552924773858ede5ee3f7fc88e4 (diff)
Merge branch 'speeed-up-reports'
Diffstat (limited to 'perllib/FixMyStreet/DB/Result/Problem.pm')
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index 19e76f6ed..0d1b396a9 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -508,12 +508,16 @@ has bodies => (
default => sub {
my $self = shift;
return {} unless $self->bodies_str;
+ my $cache = $self->result_source->schema->cache;
+ return $cache->{bodies}{$self->bodies_str} if $cache->{bodies}{$self->bodies_str};
+
my $bodies = $self->bodies_str_ids;
my @bodies = $self->result_source->schema->resultset('Body')->search(
{ id => $bodies },
{ prefetch => 'body_areas' },
)->all;
- return { map { $_->id => $_ } @bodies };
+ $cache->{bodies}{$self->bodies_str} = { map { $_->id => $_ } @bodies };
+ return $cache->{bodies}{$self->bodies_str};
},
);