Bug 11750: Hide patron's attributes on overdue list if needed

If a patron's attributes is limited to some libraries, we must apply
this limit on the overdue list view.

Test plan:
1. Create the following patron attributes:
A that is not searchable
B is searchable and does not have library limitation
C is searchable and is limited to another library than yours
2. On the right part of the overdue list view you must see B only
Without this patch C is displayed as well.

Signed-off-by: The Minh Luong <the-minh.luong@inlibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Jonathan Druart 2021-08-19 14:01:17 +02:00 committed by Fridolin Somers
parent 43abf06b64
commit a5fd77be04
1 changed files with 17 additions and 6 deletions

View File

@ -26,6 +26,7 @@ use CGI qw(-oldstyle_urls -utf8);
use C4::Auth qw( get_template_and_user );
use Text::CSV_XS;
use Koha::DateUtils qw( dt_from_string output_pref );
use Koha::Patron::Attribute::Types;
use DateTime;
use DateTime::Format::MySQL;
@ -117,13 +118,23 @@ my $have_pattr_filter_data = keys(%cgi_attrcode_to_attrvalues) > 0;
my @patron_attr_filter_loop; # array of [ domid cgivalue ismany isclone ordinal code description repeatable authorised_value_category ]
my $sth = $dbh->prepare('SELECT code,description,repeatable,authorised_value_category
FROM borrower_attribute_types
WHERE staff_searchable <> 0
ORDER BY description');
$sth->execute();
my $patron_attrs = Koha::Patron::Attribute::Types->search_with_library_limits(
{
staff_searchable => 1,
},
{},
C4::Context->userenv->{'branch'}
);
my $ordinal = 0;
while (my $row = $sth->fetchrow_hashref) {
while (my $attr = $patron_attrs->next ) {
warn $attr->code;
my $row = {
code => $attr->code,
description => $attr->description,
repeatable => $attr->repeatable,
authorised_value_category => $attr->authorised_value_category,
};
$row->{ordinal} = $ordinal;
my $code = $row->{code};
my $cgivalues = $cgi_attrcode_to_attrvalues{$code} || [ '' ];