Koha/members/members-home.pl
Jonathan Druart 2b39823c0f Bug 13458: Display the correct patron categories
Bug 9811 removes useful code.
Actually the AddPatronLists pref is not sent to the template from
members/member.pl.

To fix this issue, we can use the existing not clean way, or compare the
syspref value directly in the template. This second solution is
implemented in this patch.

Test plan:
1/ Set the AddPatronLists pref to 'specific'
2/ On the patron home page (members/members-home/pl), the patron search
result page (members/member.pl after launching a search) and on the
checkouts page/patron search result (circ/circulation.pl after searching
a patron using the check out), verify that the patron category list is
the specific ones.
3/ Test there are no regression with the AddPatronLists pref set to
'general'.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Works as described and fixes the problem.

Note: I am not sure if AddPatronLists makes sense -
if you set it to general patron types, it still preselects the
wrong category type (tried organization, a child patron category
was selected). Also the name is confusiong nowadays with the
Patron list feature.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
2014-12-28 20:34:33 -03:00

107 lines
3 KiB
Perl
Executable file

#!/usr/bin/perl
# Parts Copyright Biblibre 2010
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with Koha; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
use warnings;
use CGI;
use C4::Auth;
use C4::Output;
use C4::Context;
use C4::Members;
use C4::Branch;
use C4::Category;
use Koha::Borrower::Modifications;
my $query = new CGI;
my $branch = $query->param('branchcode');
$branch = q{} unless defined $branch;
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "members/member.tt",
query => $query,
type => "intranet",
authnotrequired => 0,
flagsrequired => {borrowers => 1},
debug => 1,
});
my $branches = GetBranches;
my @branchloop;
if ( C4::Branch::onlymine ) {
my $userenv = C4::Context->userenv;
my $branch = C4::Branch::GetBranchDetail( $userenv->{'branch'} );
push @branchloop, {
value => $branch->{branchcode},
branchcode => $branch->{branchcode},
branchname => $branch->{branchname},
selected => 1
}
} else {
foreach (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname} } keys %{$branches}) {
my $selected = 0;
$selected = 1 if $branch and $branch eq $_;
push @branchloop, {
value => $_,
branchcode => $_,
branchname => $branches->{$_}->{branchname},
selected => $selected
};
}
}
my @categories;
my $no_categories;
my $no_add = 0;
if(scalar(@branchloop) < 1){
$no_add = 1;
$template->param(no_branches => 1);
}
else {
$template->param(branchloop=>\@branchloop);
}
@categories=C4::Category->all;
if(scalar(@categories) < 1){
$no_categories = 1;
}
if($no_categories && C4::Context->preference("AddPatronLists")=~/code/){
$no_add = 1;
$template->param(no_categories => 1);
}
else {
$template->param(categories=>\@categories);
}
my $pending_borrower_modifications =
Koha::Borrower::Modifications->GetPendingModificationsCount( $branch );
$template->param(
no_add => $no_add,
pending_borrower_modifications => $pending_borrower_modifications,
);
$template->param(
alphabet => C4::Context->preference('alphabet') || join (' ', 'A' .. 'Z'),
PatronsPerPage => C4::Context->preference("PatronsPerPage") || 20,
);
output_html_with_http_headers $query, $cookie, $template->output;