@@ -, +, @@ --- Koha/Hold.pm | 1 + catalogue/detail.pl | 13 +--- catalogue/moredetail.pl | 13 +--- .../prog/en/includes/patron-title.inc | 85 ++++++++++++++++------ .../prog/en/modules/catalogue/detail.tt | 22 ++---- .../prog/en/modules/reserve/request.tt | 8 +- reserve/request.pl | 9 +-- 7 files changed, 77 insertions(+), 74 deletions(-) --- a/Koha/Hold.pm +++ a/Koha/Hold.pm @@ -252,6 +252,7 @@ Returns the related Koha::Patron object for this Hold =cut +# FIXME Should be renamed with ->patron sub borrower { my ($self) = @_; --- a/catalogue/detail.pl +++ a/catalogue/detail.pl @@ -252,11 +252,6 @@ foreach my $item (@items) { $itemfields{$_} = 1 if ( $item->{$_} ); } - if (C4::Context->preference('HidePatronName')){ - $item->{'hidepatronname'} = 1; - } - - # checking for holds my $item_object = Koha::Items->find( $item->{itemnumber} ); my $holds = $item_object->holds_placed_before_today; @@ -264,15 +259,15 @@ foreach my $item (@items) { my $patron = Koha::Patrons->find( $first_hold->borrowernumber ); $item->{backgroundcolor} = 'reserved'; $item->{reservedate} = $first_hold->reservedate; - $item->{ReservedForBorrowernumber} = $first_hold->borrowernumber; - $item->{ReservedForSurname} = $patron->surname; - $item->{ReservedForFirstname} = $patron->firstname; + $item->{ReservedFor} = $patron, $item->{ExpectedAtLibrary} = $first_hold->branchcode; - $item->{Reservedcardnumber} = $patron->cardnumber; # Check waiting status $item->{waitingdate} = $first_hold->waitingdate; } + if ( my $checkout = $item_object->checkout ) { + $item->{CheckedOutFor} = $checkout->patron; + } # Check the transit status my ( $transfertwhen, $transfertfrom, $transfertto ) = GetTransfers($item->{itemnumber}); --- a/catalogue/moredetail.pl +++ a/catalogue/moredetail.pl @@ -61,8 +61,6 @@ if($query->cookie("holdfor")){ ); } -my $hidepatronname = C4::Context->preference("HidePatronName"); - # get variables my $biblionumber=$query->param('biblionumber'); @@ -186,14 +184,10 @@ foreach my $item (@items){ $item->{'issue'}= 0; } - unless ($hidepatronname) { - if ( $item->{'borrowernumber'} ) { - my $curr_borrower = Koha::Patrons->find( $item->{borrowernumber} ); - $item->{borrowerfirstname} = $curr_borrower->firstname; - $item->{borrowersurname} = $curr_borrower->surname; - } + if ( $item->{'borrowernumber'} ) { + my $curr_borrower = Koha::Patrons->find( $item->{borrowernumber} ); + $item->{patron} = $curr_borrower; } - } my $mss = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw, kohafield => 'items.itemlost', authorised_value => { not => undef } }); @@ -224,7 +218,6 @@ $template->param( itemnumber => $itemnumber, z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)), subtitle => $subtitle, - hidepatronname => $hidepatronname, ); $template->param(ONLY_ONE => 1) if ( $itemnumber && $showncount != @items ); $template->{'VARS'}->{'searchid'} = $query->param('searchid'); --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-title.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-title.inc @@ -1,27 +1,64 @@ -[%- IF ( borrower.borrowernumber ) %] - [%- IF borrower.category_type == 'I' %] - [%- borrower.surname | html %] [% IF borrower.othernames %] ([% borrower.othernames | html %]) [% END %] - [%- ELSE %] - [%- IF invert_name %] - [%- borrower.surname | html %], [% borrower.firstname | html %] [% IF borrower.othernames %] ([% borrower.othernames | html %]) [% END %] - [%- ELSE %] - [%- borrower.firstname | html %] [% IF borrower.othernames %] ([% borrower.othernames | html %]) [% END %] [% borrower.surname | html %] - [%- END -%] +[%- USE Koha -%] +[%- USE Branches -%] +[%- SET data = {} -%] +[%- IF patron -%] + [%- SET data.category_type = patron.category.category_type -%] + [%- SET data.surname = patron.surname -%] + [%- SET data.othernames = patron.othernames -%] + [%- SET data.surname = patron.surname -%] + [%- SET data.firstname = patron.firstname -%] + [%- SET data.cardnumber = patron.cardnumber -%] + [%- SET data.borrowernumber = patron.borrowernumber -%] +[%- ELSIF ( borrower.borrowernumber ) -%] + [%- SET data.category_type = borrower.category_type -%] + [%- SET data.surname = borrower.surname -%] + [%- SET data.othernames = borrower.othernames -%] + [%- SET data.surname = borrower.surname -%] + [%- SET data.firstname = borrower.firstname -%] + [%- SET data.cardnumber = borrower.cardnumber -%] + [%- SET data.borrowernumber = borrower.borrowernumber -%] +[%- ELSIF ( borrowernumber ) -%] + [%- SET data.category_type = category_type -%] + [%- SET data.surname = surname -%] + [%- SET data.othernames = othernames -%] + [%- SET data.surname = surname -%] + [%- SET data.firstname = firstname -%] + [%- SET data.cardnumber = cardnumber -%] + [%- SET data.borrowernumber = borrowernumber -%] +[%- END -%] +[%- SET display_patron_name = 1 -%] +[%- SET display_cardnumber = 1 -%] +[%- IF hide_patron_infos_if_needed %] [%# Should only be set if patron is set -%] + [%- SET can_see_patron_infos = logged_in_user.can_see_patron_infos( patron ) -%] + [%- UNLESS can_see_patron_infos -%] + [%- SET display_patron_name = 0 -%] + [%- SET display_cardnumber = 0 -%] + [%- ELSIF Koha.Preference('HidePatronName') -%] + [%- SET display_patron_name = 0 -%] + [%- END -%] +[%- END -%] +[%- IF hide_patron_infos_if_needed AND ( display_patron_name OR display_cardnumber ) -%] + [%- IF link_to == 'circulation_reserves' %] + [%- ELSE %] [%- END -%] - [%- IF ( borrower.cardnumber ) -%] - ([% borrower.cardnumber | html %]) - [%- END %] -[%- ELSIF ( borrowernumber ) %] - [%- IF category_type == 'I' %] - [%- surname | html %] [% IF othernames %] ([% othernames | html %]) [% END %] - [%- ELSE %] - [%- IF invert_name %] - [%- surname | html %], [% firstname | html %] [% IF othernames %] ([% othernames | html %]) [% END %] - [%- ELSE %] - [%- firstname | html %] [% IF othernames %] ([% othernames | html %]) [% END %] [% surname | html %] - [%- END %] +[%- END -%] +[%- IF data.category_type == 'I' -%] + [%- UNLESS display_patron_name %][%- data.surname | html %] [% IF data.othernames %] [% END %]([% data.othernames | html %]) [% END -%] +[%- ELSIF display_patron_name -%] + [%- IF invert_name -%] + [%- data.surname | html %], [% data.firstname | html %] [% IF data.othernames %] ([% data.othernames | html %]) [% END -%] + [%- ELSE -%] + [%- data.firstname | html %] [% IF data.othernames %] ([% data.othernames | html %]) [% END %] [% data.surname | html -%] + [%- END -%] + [%- IF display_cardnumber AND data.cardnumber %]([% data.cardnumber | html %])[% END -%] +[%- ELSIF display_cardnumber -%] + [%- IF data.cardnumber -%][%# FIXME Cardnumber should always be defined, right? -%] + [%- data.cardnumber | html -%] [%- END -%] - [%- IF ( cardnumber ) -%] - ([% cardnumber | html %]) - [%- END %] +[%- ELSE -%] + A patron from library [% Branches.GetName( patron.branchcode ) -%] +[%- END -%] + +[%- IF hide_patron_infos_if_needed AND ( display_patron_name OR display_cardnumber ) -%] + [%- END -%] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -675,7 +675,7 @@ function verify_images() { [% IF ( item.itemcallnumber ) %] [% item.itemcallnumber %][% END %] - [% IF ( item.datedue ) %] + [% IF item.CheckedOutFor %] [% IF item.onsite_checkout %] Currently in local use [% ELSE %] @@ -683,16 +683,11 @@ function verify_images() { [% END %] [% UNLESS ( item.NOTSAMEBRANCH ) %] [% IF item.onsite_checkout %] - by + by [% ELSE %] - to + to [% END %] - [% IF ( item.hidepatronname ) %] - [% item.cardnumber %] - [% ELSE %] - [% item.firstname %] [% item.surname %] - [% END %] - + [% INCLUDE 'patron-title.inc' patron=item.CheckedOutFor hide_patron_infos_if_needed=1 %] [% END %] : due [% item.datedue %] @@ -742,13 +737,8 @@ function verify_images() { Item-level hold (placed [% item.reservedate | $KohaDates %]) for delivery at [% Branches.GetName( item.ExpectedAtLibrary ) %]. [% END %] [% IF ( canreservefromotherbranches ) %] - Hold for: - [% IF ( item.hidepatronname ) %] - [% item.Reservedcardnumber %] - [% ELSE %] - [% item.ReservedForFirstname _ " " _ item.ReservedForSurname _ " (" _ item.Reservedcardnumber _ ")" %] - [% END %] - + Hold for: + [% INCLUDE 'patron-title.inc' patron=item.ReservedFor hide_patron_infos_if_needed=1 %] [% END %] [% END %] [% UNLESS ( item.itemnotforloan || item.notforloan_per_itemtype || item.onloan || item.itemlost || item.withdrawn || item.damaged || item.transfertwhen || item.reservedate ) %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -773,13 +773,7 @@ function checkMultiHold() { [% END %] - - [% IF ( reserveloo.hidename ) %] - [% reserveloo.cardnumber (reserveloo.borrowernumber) %] - [% ELSE %] - [% reserveloo.firstname %] [% reserveloo.surname %] - [% END %] - + [% INCLUDE 'patron-title.inc' patron=reserveloo.patron hide_patron_infos_if_needed=1 %] [% reserveloo.notes %] [% reserveloo.date %] --- a/reserve/request.pl +++ a/reserve/request.pl @@ -566,19 +566,12 @@ foreach my $biblionumber (@biblionumbers) { } } - # get borrowers reserve info - if ( C4::Context->preference('HidePatronName') ) { - $reserve{'hidename'} = 1; - $reserve{'cardnumber'} = $res->borrower()->cardnumber(); - } $reserve{'expirationdate'} = output_pref( { dt => dt_from_string( $res->expirationdate ), dateonly => 1 } ) unless ( !defined( $res->expirationdate ) || $res->expirationdate eq '0000-00-00' ); $reserve{'date'} = output_pref( { dt => dt_from_string( $res->reservedate ), dateonly => 1 } ); $reserve{'borrowernumber'} = $res->borrowernumber(); $reserve{'biblionumber'} = $res->biblionumber(); - $reserve{'borrowernumber'} = $res->borrowernumber(); - $reserve{'firstname'} = $res->borrower()->firstname(); - $reserve{'surname'} = $res->borrower()->surname(); + $reserve{'patron'} = $res->borrower; $reserve{'notes'} = $res->reservenotes(); $reserve{'waiting_date'} = $res->waitingdate(); $reserve{'waiting_until'} = $res->is_waiting() ? $res->waiting_expires_on() : undef; --