aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB/Result
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2016-10-20 17:02:45 +0100
committerDave Arter <davea@mysociety.org>2016-10-31 13:18:42 +0000
commit15e9a1ab8c399b25bb212a3400c0361a41c9abc6 (patch)
tree549d6721f5b53767a6b60afcaeb312652b3fe312 /perllib/FixMyStreet/DB/Result
parent0a9c2ea426e8477ad302582e41756730965ea8c8 (diff)
Pre-filter map pages if user has categories assigned
This pre-filters the 'all reports' link in the main nav and the /around page reached via the front page postcode form
Diffstat (limited to 'perllib/FixMyStreet/DB/Result')
-rw-r--r--perllib/FixMyStreet/DB/Result/User.pm15
1 files changed, 15 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm
index 7ec49b074..028394795 100644
--- a/perllib/FixMyStreet/DB/Result/User.pm
+++ b/perllib/FixMyStreet/DB/Result/User.pm
@@ -391,4 +391,19 @@ sub update_reputation {
$self->update;
}
+has categories => (
+ is => 'ro',
+ lazy => 1,
+ default => sub {
+ my $self = shift;
+ return [] unless $self->get_extra_metadata('categories');
+ my @categories = $self->result_source->schema->resultset("Contact")->search({
+ id => $self->get_extra_metadata('categories'),
+ }, {
+ order_by => 'category',
+ })->get_column('category')->all;
+ return \@categories;
+ },
+);
+
1;