Bugzilla – Attachment 121319 Details for
Bug 27873
Make display of patron restrictions, charges, notes, etc. consistent for check out and patron details screens
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 27873: Improve message consistency: checkout and patron detail pages
Bug-27873-Improve-message-consistency-checkout-and.patch (text/plain), 46.24 KB, created by
Owen Leonard
on 2021-05-24 10:26:27 UTC
(
hide
)
Description:
Bug 27873: Improve message consistency: checkout and patron detail pages
Filename:
MIME Type:
Creator:
Owen Leonard
Created:
2021-05-24 10:26:27 UTC
Size:
46.24 KB
patch
obsolete
>From 6cd6d7f8fb47a8a03197f3301fdd8c98df6e3b9d Mon Sep 17 00:00:00 2001 >From: Owen Leonard <oleonard@myacpl.org> >Date: Thu, 1 Apr 2021 13:29:29 +0000 >Subject: [PATCH] Bug 27873: Improve message consistency: checkout and patron > detail pages > >This patch creates a new include for showing circulation and >patron-related messages on both the checkout page and the patron detail >page. This allows the two pages to be consistent with each other. > >The patch also makes some minor CSS adjustments, including the addition >of an SVG to replace an old GIF, arrow-bullet.gif. > >To test, apply the patch and rebuild the staff interface CSS >(https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client). > >- View both the checkout and patron details page for patrons in the > staff interface, confirming that the information is displayed in the > same way, including: > > - Pending modifications > - Pending expiration > - Expired > - Address in doubt > - Card lost > - Restricted (indefinite and with expiration) > - Outstanding overdues > - Outstanding return claims > - Patron age incorrect for their category > - Outstanding charges > - Account credit > - Waiting holds (at logged-in library or other library) > - Circulation note (from borrowers.borrowernotes) > - Messages (added at logged-in library or other library) > >EDIT: Fixed merge error. >--- > circ/circulation.pl | 8 +- > .../intranet-tmpl/prog/css/src/staff-global.scss | 9 +- > .../prog/en/includes/borrower_debarments.inc | 2 +- > .../prog/en/includes/patron_messages.inc | 226 +++++++++++++++++++++ > .../prog/en/modules/circ/circulation.tt | 206 +------------------ > .../prog/en/modules/members/moremember.tt | 117 +---------- > koha-tmpl/intranet-tmpl/prog/img/arrow-bullet.gif | Bin 48 -> 0 bytes > members/moremember.pl | 75 ++++++- > 8 files changed, 320 insertions(+), 323 deletions(-) > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/patron_messages.inc > delete mode 100644 koha-tmpl/intranet-tmpl/prog/img/arrow-bullet.gif > >diff --git a/circ/circulation.pl b/circ/circulation.pl >index f6dd318f97..4fd72616c4 100755 >--- a/circ/circulation.pl >+++ b/circ/circulation.pl >@@ -465,7 +465,7 @@ if ($patron) { > if ( $patron ) { > my $noissues; > if ( $patron->gonenoaddress ) { >- $template->param( gna => 1 ); >+ $template->param( gonenoaddress => 1 ); > $noissues = 1; > } > if ( $patron->lost ) { >@@ -473,7 +473,7 @@ if ( $patron ) { > $noissues = 1; > } > if ( $patron->is_debarred ) { >- $template->param( dbarred=> 1 ); >+ $template->param( is_debarred=> 1 ); > $noissues = 1; > } > my $account = $patron->account; >@@ -542,7 +542,7 @@ if ( $patron ) { > } > } > >-my $messages = Koha::Patron::Messages->search( >+my $patron_messages = Koha::Patron::Messages->search( > { > 'me.borrowernumber' => $borrowernumber, > }, >@@ -598,7 +598,7 @@ if ($restoreduedatespec || $stickyduedate) { > } > > $template->param( >- messages => $messages, >+ patron_messages => $patron_messages, > borrowernumber => $borrowernumber, > branch => $branch, > was_renewed => scalar $query->param('was_renewed') ? 1 : 0, >diff --git a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss b/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss >index 6d9db96973..26ab296775 100644 >--- a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss >+++ b/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss >@@ -1720,18 +1720,15 @@ i { > } > } > >-.blocker { >- color: #990000; >-} >- >+.blocker, > .inaccurate-item-statuses { > color: #990000; > } > > .circmessage { > li { >- list-style: url("../img/arrow-bullet.gif"); >- margin-bottom: .2em; >+ list-style: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='5' viewBox='0 0 25 25'%3E%3Cpath fill='%23999' d='M9.66.95h4.56l9.21 11.85-9.21 10.53H9.66l5.08-10.53z'/%3E%3C/svg%3E"); >+ margin-bottom: .4em; > } > } > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/borrower_debarments.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/borrower_debarments.inc >index 511a6b88a5..632b3dc6d6 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/borrower_debarments.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/borrower_debarments.inc >@@ -23,7 +23,7 @@ > [% CASE 'MANUAL' %] > Manual > [% CASE 'OVERDUES' %] >- Overdues >+ Overdues > [% CASE 'SUSPENSION' %] > Suspension > [% CASE 'DISCHARGE' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/patron_messages.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/patron_messages.inc >new file mode 100644 >index 0000000000..8f56ab2dd5 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron_messages.inc >@@ -0,0 +1,226 @@ >+[% SET ClaimReturnedWarningThreshold = Koha.Preference('ClaimReturnedWarningThreshold') %] >+[% SET return_claims = patron.return_claims %] >+ >+[% IF ( has_modifications || warndeparture || returnbeforeexpiry || expired || patron.gonenoaddress || patron.lost || userdebarred || odues || ( return_claims.count > ClaimReturnedWarningThreshold ) || age_limitations || charges || charges_guarantors_guarantees || charges_guarantees || credits ) %] >+ <h3>Attention</h3> >+ <ul> >+ [% IF ( has_modifications ) %] >+ <li class="has_modifications"> >+ <span class="circ-hlt">Pending modifications:</span> Patron has pending modifications. >+ [% IF CAN_user_borrowers_edit_borrowers && ( !Koha.Preference('IndependentBranchesPatronModifications') || borrower.branch == branch ) %] >+ <a href="/cgi-bin/koha/members/members-update.pl">View all pending patron modifications</a> >+ [% END %] >+ </li> >+ [% END %] >+ >+ [% IF ( warndeparture ) %] >+ <li class="warndeparture"> >+ <span class="circ-hlt">Expiration:</span> Patron's card will expire soon. >+ Patron's card expires on [% expiry | $KohaDates %] <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&destination=circ&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&destination=circ&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a> >+ >+ </li> >+ [% END %] >+ >+ [% IF ( returnbeforeexpiry ) %] >+ <li class="returnbeforeexpiry"> >+ <span class="circ-hlt">Set due date to expiry:</span> You have the ReturnBeforeExpiry system preference enabled this means if the expiry date is before the date due, the date due will be set to the expiry date >+ </li> >+ [% END %] >+ >+ [% IF ( expired ) %] >+ <li class="expired"> >+ <span class="circ-hlt">Expiration:</span> Patron's card has expired. >+ [% IF ( expiry ) %] >+ Patron's card expired on [% expiry | $KohaDates %] >+ [% END %] >+ <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&destination=circ&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&destination=circ&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a> >+ </li> >+ [% END %] >+ >+ [% IF ( patron.gonenoaddress ) %] >+ <li class="gonenoaddress blocker"> >+ <span class="circ-hlt">Address:</span> Patron's address in doubt >+ </li> >+ [% END %] >+ >+ [% IF ( patron.lost ) %] >+ <li class="lost blocker"> >+ <span class="circ-hlt">Lost: </span> Patron's card is lost >+ </li> >+ [% END %] >+ >+ [% IF ( userdebarred ) %] >+ <li class="userdebarred blocker"> >+ <span class="circ-hlt"> Restricted:</span> Patron's account is restricted >+ >+ [% IF ( userdebarreddate ) %] >+ until [% userdebarreddate | $KohaDates %] >+ [% END %] >+ >+ [% IF ( debarredcomment ) %] >+ with the explanation: <br/> >+ <em> >+ [% IF debarredcomment.search('OVERDUES_PROCESS') %] >+ Restriction added by overdues process [% debarredcomment.remove('OVERDUES_PROCESS ') | $raw | html_line_break %] >+ [% ELSE %] >+ [% debarredcomment | $raw | html_line_break %] >+ [% END %] >+ </em><br/> >+ [% END %] >+ <a class="btn btn-xs btn-default" href="#reldebarments" onclick="$('#debarments-tab-link').click()"><i class="fa fa-ban"></i> View restrictions</a> >+ >+ [% IF (noissues && CAN_user_circulate_force_checkout) %] >+ <span class="override_debarment"> >+ <a href="/cgi-bin/koha/circ/circulation.pl?forceallow=1&borrowernumber=[% patron.borrowernumber | uri %]" class="btn btn-xs btn-default">Override restriction temporarily</a> >+ </span> >+ [% END %] >+ </li> <!-- /.blocker --> >+ [% END # /IF userdebarred %] >+ >+ [% IF ( odues ) %] >+ <li class="odues blocker"> >+ <span class="circ-hlt">Overdues:</span> Patron has ITEMS OVERDUE <a href="#checkouts">See highlighted items below</a> >+ </li> >+ [% END %] >+ >+ [% IF return_claims.count > ClaimReturnedWarningThreshold %] >+ <li class="return_claims blocker"> >+ <span class="circ-hlt return-claims">Return claims:</span> Patron has [% return_claims.count | html %] RETURN CLAIMS >+ </li> >+ [% END %] >+ >+ [% IF age_limitations %] >+ [% INCLUDE 'category-out-of-age-limit.inc' %] >+ [% END %] >+ >+ [% IF ( charges ) %] >+ [% INCLUDE 'blocked-fines.inc' fines = chargesamount %] >+ [% END %] >+ >+ [% IF ( charges_guarantors_guarantees ) %] >+ <li class="charges_guarantors_guarantees"> >+ <span class="circ-hlt">Charges:</span> Patron's guarantors and their other guarantees collectively owe [% charges_guarantors_guarantees | $Price %]. >+ [% IF noissues %] >+ <span class="circ-hlt">Checkouts are BLOCKED because fine balance is OVER THE LIMIT.</span> >+ [% END %] >+ </li> >+ [% END %] >+ >+ [% IF ( charges_guarantees ) %] >+ <li class="charges_guarantees"> >+ <span class="circ-hlt">Charges:</span> Patron's guarantees collectively owe [% chargesamount_guarantees | $Price %]. >+ [% IF noissues %] >+ <span class="circ-hlt">Checkouts are BLOCKED because fine balance is OVER THE LIMIT.</span> >+ [% END %] >+ </li> >+ [% END %] >+ >+ [% IF ( credits ) %] >+ <li class="credits"> >+ <span class="circ-hlt">Credits:</span> Patron has a credit[% IF ( creditsamount ) %] of <span class="credit"><strong>[% creditsamount | $Price %]</strong></span>[% END %] >+ </li> >+ [% END %] >+ >+ </ul> >+ >+[% END # /F ( has_modifications || warndeparture... %] >+ >+ >+[% IF WaitingHolds.count %] >+ <div id="holdswaiting" class="circmessage"> >+ [% SET waiting_here = 0 %] >+ [% SET waiting_elsewhere = 0 %] >+ [% FOREACH w IN WaitingHolds %] >+ [% IF ( w.branch.branchcode == Branches.GetLoggedInBranchcode() ) %] >+ [% waiting_here = waiting_here + 1 %] >+ [% ELSE %] >+ [% waiting_elsewhere = waiting_elsewhere + 1 %] >+ [% END %] >+ [% END %] >+ >+ [% IF ( waiting_here > 0 ) %] >+ <h4>Holds waiting here ([% waiting_here | html %])</h4> >+ <ul> >+ [% FOREACH w IN WaitingHolds %] >+ [% IF ( w.branch.branchcode == Branches.GetLoggedInBranchcode() ) %] >+ <li> >+ <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% w.biblio.biblionumber | uri %]">[% w.biblio.title | html %]</a> >+ ([% ItemTypes.GetDescription( w.item.effective_itemtype ) | html %]), >+ [% IF ( w.biblio.author ) %] by [% w.biblio.author | html %] [% END %] >+ [% IF ( w.item.itemcallnumber ) %] [[% w.item.itemcallnumber | html %]] [% END %] >+ Hold placed on [% w.reservedate | $KohaDates %]. >+ <br /> >+ <strong class="waitinghere"> >+ [% SET expires_on = w.expirationdate %] >+ Waiting here [% IF expires_on %] until [% expires_on | $KohaDates %] [% END %] >+ </strong> >+ </li> >+ [% END %] >+ [% END %] >+ </ul> >+ [% END %] >+ >+ [% IF ( waiting_elsewhere > 0 ) %] >+ <h4>Holds waiting at other libraries ([% waiting_elsewhere | html %])</h4> >+ <ul> >+ [% FOREACH w IN WaitingHolds %] >+ [% IF ( w.branch.branchcode != Branches.GetLoggedInBranchcode() ) %] >+ <li> >+ <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% w.biblio.biblionumber | uri %]">[% w.biblio.title | html %]</a> >+ ([% ItemTypes.GetDescription( w.item.effective_itemtype ) | html %]), >+ [% IF ( w.biblio.author ) %] by [% w.biblio.author | html %] [% END %] >+ [% IF ( w.item.itemcallnumber ) %] [[% w.item.itemcallnumber | html %]] [% END %] >+ Hold placed on [% w.reservedate | $KohaDates %]. >+ <br /> >+ <strong> >+ [% SET expires_on = w.expirationdate %] >+ Waiting at [% w.branch.branchname | html %] [% IF expires_on %] until [% expires_on | $KohaDates %] [% END %] >+ </strong> >+ </li> >+ [% END %] >+ [% END %] >+ </ul> >+ [% END %] >+ </div> >+[% END # /IF WaitingHolds.count %] >+ >+[% IF ( patron.borrowernotes ) %] >+ <div id="circnotes" class="circmessage"> >+ <h4>Notes</h4> >+ <ul> >+ <li> >+ <span class="circ-hlt"> >+ [% patron.borrowernotes | $raw | html_line_break %] >+ </span> >+ </li> >+ </ul> >+ </div> <!-- /#circnotes --> >+[% END # /IF patron.borrowernotes %] >+ >+[% IF ( patron_messages ) %] >+ <div id="messages" class="circmessage"> >+ <h4>Messages</h4> >+ <ul> >+ [% FOREACH patron_message IN patron_messages %] >+ <li> >+ [% IF(patron_message.message_type == "L") %] >+ <span class="circ-hlt"> >+ [% ELSE %] >+ <span> >+ [% END %] >+ [% patron_message.message_date | $KohaDates %] >+ [% Branches.GetName( patron_message.branchcode ) | html %] >+ [% IF patron_message.manager_id %] >+ ( <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron_message.manager_id | uri %]">[% patron_message.get_column('manager_firstname') | html %] [% patron_message.get_column('manager_surname') | html %]</a> ) >+ [% END %] >+ <em>"[% patron_message.message | html %]"</em> >+ </span> >+ [% IF patron_message.branchcode == patron.branchcode OR Koha.Preference('AllowAllMessageDeletion') %] >+ <a class="btn btn-link" href="/cgi-bin/koha/circ/del_message.pl?message_id=[% patron_message.message_id | html %]&borrowernumber=[% patron_message.borrowernumber | html %]&from=moremember" onclick='return confirm(_("Are you sure you want to delete this message? This cannot be undone."));'><i class="fa fa-trash"></i> Delete</a> >+ [% END %] >+ </li> >+ [% END %] >+ </ul> >+ <a id="addnewmessageLabel" href="#add_message_form" class="btn btn-link" data-toggle="modal"><i class="fa fa-plus"></i> Add a new message</a> >+ </div> <!-- /#messages --> >+[% END # /IF patron_messages %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >index fb3abec220..1771a941f0 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >@@ -750,214 +750,10 @@ > </h3> > [% ELSE %] > <div id="circmessages" class="circmessage attention"> >- <h3>Attention:</h3> > [% END %] > >- <ul> >- [% IF ( has_modifications ) %] >- <li><span class="circ-hlt">Pending modifications:</span> Patron has pending modifications. >- [% IF CAN_user_borrowers_edit_borrowers && ( !Koha.Preference('IndependentBranchesPatronModifications') || borrower.branch == branch ) %] >- <a href="/cgi-bin/koha/members/members-update.pl">View all pending patron modifications</a> >- [% END %] >- </li> >- [% END %] >- >- [% IF ( warndeparture ) %] >- <li> >- <span class="circ-hlt">Expiration:</span> Patron's card will expire soon. >- Patron's card expires on [% expiry | $KohaDates %] <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&destination=circ&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&destination=circ&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a> >- >- </li> >- [% END %] >- >- [% IF ( returnbeforeexpiry ) %] >- <li> >- <span class="circ-hlt">Set due date to expiry:</span> You have the ReturnBeforeExpiry system preference enabled this means if the expiry date is before the date due, the date due will be set to the expiry date >- </li> >- [% END %] >- >- [% IF ( expired ) %] >- <li> >- <span class="circ-hlt">Expiration:</span> Patron's card has expired. >- [% IF ( expiry ) %] >- Patron's card expired on [% expiry | $KohaDates %] >- [% END %] >- <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&destination=circ&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&destination=circ&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a> >- </li> >- [% END %] >- >- [% IF ( gna ) %] >- <li class="blocker"><span class="circ-hlt">Address:</span> Patron's address in doubt</li> >- [% END %] >- >- [% IF ( lost ) %] >- <li class="blocker"><span class="circ-hlt">Lost: </span>Patron's card is lost</li> >- [% END %] >- >- [% IF ( userdebarred ) %] >- <li class="blocker"> >- <span class="circ-hlt"> Restricted:</span> Patron's account is restricted >- >- [% IF ( userdebarreddate ) %] >- until [% userdebarreddate | $KohaDates %] >- [% END %] >- >- [% IF ( debarredcomment ) %] >- with the explanation: <br/> >- <em> >- [% IF debarredcomment.search('OVERDUES_PROCESS') %] >- Restriction added by overdues process [% debarredcomment.remove('OVERDUES_PROCESS ') | $raw | html_line_break %] >- [% ELSE %] >- [% debarredcomment | $raw | html_line_break %] >- [% END %] >- </em> >- [% END %] >- <br/> >- <a class="btn btn-default" href="#reldebarments" onclick="$('#debarments-tab-link').click()"><i class="fa fa-ban"></i> View restrictions</a> >- >- [% IF (noissues && patron && CAN_user_circulate_force_checkout) %] >- <span class="override_debarment"> >- <a href="/cgi-bin/koha/circ/circulation.pl?forceallow=1&borrowernumber=[% patron.borrowernumber | uri %]" class="btn btn-default">Override restriction temporarily</a> >- </span> >- [% END %] >- </li> <!-- /.blocker --> >- [% END # /IF userdebarred %] >- >- [% IF ( odues ) %] >- <li><span class="circ-hlt">Overdues: Patron has ITEMS OVERDUE.</span> <a href="#checkouts">See highlighted items below</a></li> >- [% END %] >- >- [% SET ClaimReturnedWarningThreshold = Koha.Preference('ClaimReturnedWarningThreshold') %] >- [% SET return_claims = patron.return_claims %] >- [% IF return_claims.count > ClaimReturnedWarningThreshold %] >- <li><span class="circ-hlt return-claims">Return claims: Patron has [% return_claims.count | html %] RETURN CLAIMS.</span></li> >- [% END %] >- >- >- [% IF age_limitations %] >- [% INCLUDE 'category-out-of-age-limit.inc' %] >- [% END %] >- >- [% IF ( charges ) %] >- [% INCLUDE 'blocked-fines.inc' fines = chargesamount %] >- [% END %] >- [% IF ( charges_guarantors_guarantees ) %] >- <li> >- <span class="circ-hlt">Charges:</span> Patron's guarantors and their other guarantees collectively owe [% charges_guarantors_guarantees | $Price %]. >- [% IF noissues %] >- <span class="circ-hlt">Checkouts are BLOCKED because fine balance is OVER THE LIMIT.</span> >- [% END %] >- </li> >- [% END %] >- [% IF ( charges_guarantees ) %] >- <li> >- <span class="circ-hlt">Charges:</span> Patron's guarantees collectively owe [% chargesamount_guarantees | $Price %]. >- [% IF noissues %] >- <span class="circ-hlt">Checkouts are BLOCKED because fine balance is OVER THE LIMIT.</span> >- [% END %] >- </li> >- [% END %] >- >- >- [% IF ( credits ) %] >- <li> >- <span class="circ-hlt">Credits:</span> Patron has a credit[% IF ( creditsamount ) %] of [% creditsamount | $Price %][% END %] >- </li> >- [% END %] >- >- </ul> >- >- [% IF WaitingHolds.count %] >- <div id="holdswaiting" class="circmessage"> >- [% SET waiting_here = 0 %] >- [% SET waiting_elsewhere = 0 %] >- [% FOREACH w IN WaitingHolds %] >- [% IF ( w.branch.branchcode == Branches.GetLoggedInBranchcode() ) %] >- [% waiting_here = waiting_here + 1 %] >- [% ELSE %] >- [% waiting_elsewhere = waiting_elsewhere + 1 %] >- [% END %] >- [% END %] >- >- [% IF ( waiting_here > 0 ) %] >- <h4>Holds waiting here ([% waiting_here | html %])</h4> >- <ul> >- [% FOREACH w IN WaitingHolds %] >- [% IF ( w.branch.branchcode == Branches.GetLoggedInBranchcode() ) %] >- <li> >- <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% w.biblio.biblionumber | uri %]">[% w.biblio.title | html %]</a> >- ([% ItemTypes.GetDescription( w.item.effective_itemtype ) | html %]), >- [% IF ( w.biblio.author ) %] by [% w.biblio.author | html %] [% END %] >- [% IF ( w.item.itemcallnumber ) %] [[% w.item.itemcallnumber | html %]] [% END %] >- Hold placed on [% w.reservedate | $KohaDates %]. >- <br /> >- <strong class="waitinghere"> >- [% SET expires_on = w.expirationdate %] >- Waiting here [% IF expires_on %] until [% expires_on | $KohaDates %] [% END %] >- </strong> >- </li> >- [% END %] >- [% END %] >- </ul> >- [% END %] >- >- [% IF ( waiting_elsewhere > 0 ) %] >- <h4>Holds waiting at other libraries ([% waiting_elsewhere | html %])</h4> >- <ul> >- [% FOREACH w IN WaitingHolds %] >- [% IF ( w.branch.branchcode != Branches.GetLoggedInBranchcode() ) %] >- <li> >- <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% w.biblio.biblionumber | uri %]">[% w.biblio.title | html %]</a> >- ([% ItemTypes.GetDescription( w.item.effective_itemtype ) | html %]), >- [% IF ( w.biblio.author ) %] by [% w.biblio.author | html %] [% END %] >- [% IF ( w.item.itemcallnumber ) %] [[% w.item.itemcallnumber | html %]] [% END %] >- Hold placed on [% w.reservedate | $KohaDates %]. >- <br /> >- <strong> >- [% SET expires_on = w.expirationdate %] >- Waiting at [% w.branch.branchname | html %] [% IF expires_on %] until [% expires_on | $KohaDates %] [% END %] >- </strong> >- </li> >- [% END %] >- [% END %] >- </ul> >- [% END %] >- >- </div> >- [% END # /IF WaitingHolds.count %] >+ [% INCLUDE 'patron_messages.inc' %] > >- [% IF ( notes ) %] >- <div id="circnotes" class="circmessage"> >- <h4>Notes:</h4> >- <p><span class="circ-hlt">[% notesmsg | $raw %]</span></p> >- </div> >- [% END %] >- >- <div id="messages" class="circmessage"> >- <h4>Messages:</h4> >- <ul> >- [% FOREACH message IN messages %] >- <li> >- [% IF(message.message_type == "L") %] >- <span class="circ-hlt"> >- [% ELSE %] >- <span> >- [% END %] >- [% message.message_date | $KohaDates %] >- [% Branches.GetName( message.branchcode ) | html %] >- [% IF message.manager_id %] >- ( <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% message.manager_id | uri %]">[% message.get_column('manager_firstname') | html %] [% message.get_column('manager_surname') | html %]</a> ) >- [% END %] >- <em>"[% message.message | html %]"</em> >- </span> >- [% IF message.branchcode == branch OR Koha.Preference('AllowAllMessageDeletion') %] >- <a class="btn btn-link" href="/cgi-bin/koha/circ/del_message.pl?message_id=[% message.message_id | html %]&borrowernumber=[% message.borrowernumber | html %]" onclick='return confirm(_("Are you sure you want to delete this message? This cannot be undone."));'><i class="fa fa-trash"></i> Delete</a> >- [% END %] >- </li> >- [% END %] >- </ul> >- <a id="addnewmessageLabel" href="#add_message_form" class="btn btn-link" data-toggle="modal"><i class="fa fa-plus"></i> Add a new message</a> >- </div> <!-- /.messages --> > </div> <!-- /#circmessages --> > </div> <!-- /div or div.col-sm-6 --> > </div> <!-- /.row --> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >index cd416da0ec..a26c35c493 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >@@ -2,6 +2,7 @@ > [% USE Asset %] > [% USE Koha %] > [% USE Branches %] >+[% USE ItemTypes %] > [% USE KohaDates %] > [% USE AuthorisedValues %] > [% USE TablesSettings %] >@@ -83,119 +84,23 @@ > > <div class="row"> > >+ <h3> >+ [% UNLESS ( I ) %] >+ [% patron.title | html %] [% patron.firstname | html %] >+ [% END %] >+ [% patron.surname | html %] ([% patron.cardnumber | html %]) >+ </h3> >+ > [% IF ( was_renewed ) %] > <div class="dialog message"> > Patron's account has been renewed until [% patron.dateexpiry | $KohaDates %] > </div> > [% END %] > >- [% IF fines || age_limitations %] >- <div id="circmessages" class="circmessage attention"> >- <ul> >- [% IF fines %] >- [% INCLUDE 'blocked-fines.inc' %] >- [% END %] >- [% IF age_limitations %] >- [% INCLUDE 'category-out-of-age-limit.inc' %] >- [% END %] >- </ul> >- </div> >- [% END %] >- >- [% IF ( patron_messages ) %] >- <div id="messages" class="circmessage"> >- <h4>Messages:</h4> >- <ul> >- [% FOREACH patron_message IN patron_messages %] >- <li> >- [% IF(patron_message.message_type == "L") %] >- <span class="circ-hlt"> >- [% ELSE %] >- <span> >- [% END %] >- [% patron_message.message_date | $KohaDates %] >- [% Branches.GetName( patron_message.branchcode ) | html %] >- [% IF patron_message.manager_id %] >- ( <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron_message.manager_id | uri %]">[% patron_message.get_column('manager_firstname') | html %] [% patron_message.get_column('manager_surname') | html %]</a> ) >- [% END %] >- <em>"[% patron_message.message | html %]"</em> >- </span> >- [% IF patron_message.branchcode == patron.branchcode OR Koha.Preference('AllowAllMessageDeletion') %] >- <a class="btn btn-link" href="/cgi-bin/koha/circ/del_message.pl?message_id=[% patron_message.message_id | html %]&borrowernumber=[% patron_message.borrowernumber | html %]&from=moremember" onclick='return confirm(_("Are you sure you want to delete this message? This cannot be undone."));'><i class="fa fa-trash"></i> Delete</a> >- [% END %] >- </li> >- [% END %] >- </ul> >- <a id="addnewmessageLabel" href="#add_message_form" class="btn btn-link" data-toggle="modal"><i class="fa fa-plus"></i> Add a new message</a> >- </div> >- [% END %] >- >- [% IF ( patron.borrowernotes ) %] >- <div id="circnotes" class="circmessage"> >- <h4>Notes: </h4> >- <ul><li> >- <span class="circ-hlt"> >- [% patron.borrowernotes | $raw | html_line_break %] >- </span> >- </li></ul> >- </div> >- [% END %] >- >- [% IF ( flagged ) %] >- <div id="circmessages" class="circmessage attention"> >- <ul> >- [% IF ( patron.is_debarred ) %] >- <li class="blocker">Patron's account is restricted >- [% IF ( userdebarreddate ) %] >- until [% userdebarreddate | $KohaDates %] >- [% END %] >- >- [% IF ( patron.debarredcomment ) %] >- with the explanation: <em> >- [% IF patron.debarredcomment.search('OVERDUES_PROCESS') %] >- Restriction added by overdues process [% patron.debarredcomment.remove('OVERDUES_PROCESS ') | html_line_break %] >- [% ELSE %] >- [% patron.debarredcomment | html_line_break %] >- [% END %] >- </em> >- [% END %] >- <a href="#reldebarments" id="view_restrictions">View restrictions</a> >- </li> >- [% END %] >- [% IF ( patron.gonenoaddress ) %] >- <li class="blocker">Patron's address is in doubt.</li> >- [% END %] >- [% IF ( patron.lost ) %] >- <li class="blocker">Patron's card has been reported lost.</li> >- [% END %] >- [% IF ( patron.is_expired ) %] >- <li class="blocker"> >- <span class="circ-hlt">Expiration:</span> >- [% IF ( patron.dateexpiry ) %] >- Patron's card expired on [% patron.dateexpiry | $KohaDates %]. >- [% ELSE %] >- Patron's card has expired. >- [% END %] >- <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a> >- </li> >- [% ELSIF ( patron.is_going_to_expire ) %] >- <li> >- <span class="circ-hlt">Expiration:</span> Patron's card will expire soon. >- Patron's card expires on [% patron.dateexpiry | $KohaDates %] >- <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a> >- </li> >- [% END %] >- >- </ul> >- </div> >- [% END %] >+ <div id="patron_messages" class="circmessage attention"> >+ [% INCLUDE 'patron_messages.inc' %] >+ </div> > >- <h3> >- [% UNLESS ( I ) %] >- [% patron.title | html %] [% patron.firstname | html %] >- [% END %] >- [% patron.surname | html %] ([% patron.cardnumber | html %]) >- </h3> > <div class="col-sm-6"> > > <div id="patron-information" class="patroninfo-section"> >diff --git a/koha-tmpl/intranet-tmpl/prog/img/arrow-bullet.gif b/koha-tmpl/intranet-tmpl/prog/img/arrow-bullet.gif >deleted file mode 100644 >index 7e3155ed3698562325e3cb9c9e3cfbe1ce00ce89..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 48 >zcmZ?wbhEHbWMyDwXkcWRIdkU!|Nj+#vM@3*Ff!;c00Bsbfr;HGp>x;rFa`!|05FmZ >Af&c&j > >diff --git a/members/moremember.pl b/members/moremember.pl >index 8f6e959850..c2edb86961 100755 >--- a/members/moremember.pl >+++ b/members/moremember.pl >@@ -34,11 +34,13 @@ use C4::Auth; > use C4::Output; > use C4::Form::MessagingPreferences; > use List::MoreUtils qw/uniq/; >+use Scalar::Util qw( looks_like_number ); > use Koha::Patron::Attribute::Types; > use Koha::Patron::Debarments qw(GetDebarments); > use Koha::Patron::Messages; > use Koha::DateUtils; > use Koha::CsvProfiles; >+use Koha::Holds; > use Koha::Patrons; > use Koha::Patron::Files; > use Koha::Token; >@@ -89,12 +91,16 @@ for (qw(gonenoaddress lost borrowernotes is_debarred)) { > > if ( $patron->is_debarred ) { > $template->param( >- debarments => scalar GetDebarments({ borrowernumber => $borrowernumber }), >+ 'debarments' => scalar GetDebarments({ borrowernumber => $borrowernumber }), >+ 'userdebarred' => $patron->debarred, >+ 'debarredcomment' => $patron->debarredcomment, > ); >+ > if ( $patron->debarred ne "9999-12-31" ) { > $template->param( 'userdebarreddate' => $patron->debarred ); > } > } >+ > $template->param( flagged => 1 ) if $patron->account_locked; > > my @relatives; >@@ -196,6 +202,71 @@ if ( $patron->is_expired || $patron->is_going_to_expire ) { > ); > } > >+my $holds = Koha::Holds->search( { borrowernumber => $borrowernumber } ); # FIXME must be Koha::Patron->holds >+my $waiting_holds = $holds->waiting; >+$template->param( >+ holds_count => $holds->count(), >+ WaitingHolds => $waiting_holds, >+); >+ >+my $no_issues_charge_guarantees = C4::Context->preference("NoIssuesChargeGuarantees"); >+$no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees ); >+if ( defined $no_issues_charge_guarantees ) { >+ my $guarantees_non_issues_charges = 0; >+ my $guarantees = $patron->guarantee_relationships->guarantees; >+ while ( my $g = $guarantees->next ) { >+ $guarantees_non_issues_charges += $g->account->non_issues_charges; >+ } >+ if ( $guarantees_non_issues_charges > $no_issues_charge_guarantees ) { >+ $template->param( >+ charges_guarantees => 1, >+ chargesamount_guarantees => $guarantees_non_issues_charges, >+ ); >+ } >+} >+ >+if ( $patron->has_overdues ) { >+ $template->param( odues => 1 ); >+} >+my $issues = $patron->checkouts; >+ >+my $balance = 0; >+$balance = $patron->account->balance; >+ >+my $account = $patron->account; >+if( ( my $owing = $account->non_issues_charges ) > 0 ) { >+ my $noissuescharge = C4::Context->preference("noissuescharge") || 5; # FIXME If noissuescharge == 0 then 5, why?? >+ $template->param( >+ charges => 1, >+ chargesamount => $owing, >+ ) >+} elsif ( $balance < 0 ) { >+ $template->param( >+ credits => 1, >+ creditsamount => -$balance, >+ ); >+} >+ >+# if the expiry date is before today ie they have expired >+if ( $patron->is_expired ) { >+ #borrowercard expired, no issues >+ $template->param( >+ expired => "1", >+ ); >+} >+# check for NotifyBorrowerDeparture >+elsif ( $patron->is_going_to_expire ) { >+ # borrower card soon to expire warn librarian >+ $template->param( "warndeparture" => $patron->dateexpiry , >+ ); >+ if (C4::Context->preference('ReturnBeforeExpiry')){ >+ $template->param("returnbeforeexpiry" => 1); >+ } >+} >+ >+ >+my $has_modifications = Koha::Patron::Modifications->search( { borrowernumber => $borrowernumber } )->count; >+ > $template->param( > patron => $patron, > issuecount => $patron->checkouts->count, >@@ -210,6 +281,8 @@ $template->param( > relatives_borrowernumbers => \@relatives, > logged_in_user => $logged_in_user, > files => Koha::Patron::Files->new( borrowernumber => $borrowernumber ) ->GetFilesInfo(), >+ #debarments => scalar GetDebarments({ borrowernumber => $borrowernumber }), >+ has_modifications => $has_modifications, > ); > > output_html_with_http_headers $input, $cookie, $template->output; >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 27873
:
117767
|
117768
|
119087
|
119089
|
119184
|
120264
|
121040
|
121318
|
121319
|
121398
|
122580