Bug 21890: Add can_any_reset_password() to the Categories TT plugin
[koha.git] / Koha / Template / Plugin / Categories.pm
1 package Koha::Template::Plugin::Categories;
2
3 # Copyright 2013-2014 BibLibre
4 #
5 # Koha is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # Koha is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18 use Modern::Perl;
19
20 use Template::Plugin;
21 use base qw( Template::Plugin );
22
23 use Koha::Patron::Categories;
24
25 sub all {
26     my ( $self, $params ) = @_;
27     return Koha::Patron::Categories->search_limited($params);
28 }
29
30 sub GetName {
31     my ( $self, $categorycode ) = @_;
32
33     return Koha::Patron::Categories->find( $categorycode )->description;
34 }
35
36 sub can_any_reset_password {
37     return ( grep { $_->effective_reset_password } @{ Koha::Patron::Categories->search->as_list } )
38         ? 1
39         : 0;
40 }
41
42 1;
43
44 =head1 NAME
45
46 Koha::Template::Plugin::Categories - TT Plugin for categories
47
48 =head1 SYNOPSIS
49
50 [% USE Categories %]
51
52 [% Categories.all() %]
53
54 =head1 ROUTINES
55
56 =head2 all
57
58 In a template, you can get the all categories with
59 the following TT code: [% Categories.all() %]
60
61 =head2 GetName
62
63 In a template, you can get the name of a patron category using
64 [% Categories.GetName( categorycode ) %].
65
66 =head2 can_any_reset_password
67
68 Returns I<true> is any patron category has the I<effective_reset_password> evaluate to I<true>.
69 Returns I<false> otherwise.
70
71 =head1 AUTHOR
72
73 Jonathan Druart <jonathan.druart@biblibre.com>
74
75 =cut