diff options
author | Dave Arter <davea@mysociety.org> | 2016-10-20 17:02:45 +0100 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2016-10-31 13:18:42 +0000 |
commit | 15e9a1ab8c399b25bb212a3400c0361a41c9abc6 (patch) | |
tree | 549d6721f5b53767a6b60afcaeb312652b3fe312 /perllib/FixMyStreet/DB/Result/User.pm | |
parent | 0a9c2ea426e8477ad302582e41756730965ea8c8 (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/User.pm')
-rw-r--r-- | perllib/FixMyStreet/DB/Result/User.pm | 15 |
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; |