Bugzilla – Attachment 177907 Details for
Bug 31391
Staff-side recalls
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 31391: Interface and wording fixes
Bug-31391-Interface-and-wording-fixes.patch (text/plain), 16.95 KB, created by
Jonathan Druart
on 2025-02-12 13:57:32 UTC
(
hide
)
Description:
Bug 31391: Interface and wording fixes
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2025-02-12 13:57:32 UTC
Size:
16.95 KB
patch
obsolete
>From e6312bd57dc66869ce8bfec82a5b1368eb94ce1d Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >Date: Thu, 2 Mar 2023 00:42:28 +0000 >Subject: [PATCH] Bug 31391: Interface and wording fixes > >This patch includes the following fixes: >- Making the atomic updates executable >- Preventing warns when running tests >- Updating db updates >- Fixing terminology >- Make 'cancel selected recalls' button yellow >- Fix HTML makeup of recalls request page >- Show a warning when placing a recall if there is already a >record-level hold by this patron >- Show a link to mark a hold for conversion which selects the recall >option on holds page >- Include changes to patron search dropdown >- add 'mark hold for conversion to recall' column to columns settings > >Signed-off-by: David Nind <david@davidnind.com> >Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com> >--- > admin/columns_settings.yml | 4 +- > ..._CANCELLATION-RECALLED_authorised_value.pl | 4 +- > ...ug_31391_-_add_RecallsInterface_syspref.pl | 4 +- > .../prog/en/includes/holds_table.inc | 6 ++ > .../admin/preferences/circulation.pref | 20 +++---- > .../prog/en/modules/recalls/request.tt | 55 +++++++++++-------- > .../prog/en/modules/reserve/request.tt | 6 +- > recalls/request.pl | 5 +- > t/db_dependent/Holds.t | 14 +++++ > 9 files changed, 80 insertions(+), 38 deletions(-) > >diff --git a/admin/columns_settings.yml b/admin/columns_settings.yml >index 2a632acc25b..956aa3a99e9 100644 >--- a/admin/columns_settings.yml >+++ b/admin/columns_settings.yml >@@ -1955,6 +1955,8 @@ modules: > columnname: suspend > - > columnname: print_slip >+ - >+ columnname: convert_to_recall > > holdsratios: > holds-ratios: >@@ -2545,4 +2547,4 @@ modules: > - > columnname: actions > cannot_be_toggled: 1 >- cannot_be_modified: 1 >+ cannot_be_modified: 1 >\ No newline at end of file >diff --git a/installer/data/mysql/atomicupdate/bug_31391_-_add_HOLD_CANCELLATION-RECALLED_authorised_value.pl b/installer/data/mysql/atomicupdate/bug_31391_-_add_HOLD_CANCELLATION-RECALLED_authorised_value.pl >index ad7aae45309..c00dcadefb4 100644 >--- a/installer/data/mysql/atomicupdate/bug_31391_-_add_HOLD_CANCELLATION-RECALLED_authorised_value.pl >+++ b/installer/data/mysql/atomicupdate/bug_31391_-_add_HOLD_CANCELLATION-RECALLED_authorised_value.pl >@@ -2,7 +2,7 @@ use Modern::Perl; > > return { > bug_number => "31391", >- description => "Add new RECALLED value to HOLD_CANCELLATION authorised value category", >+ description => "Staff-side recalls", > up => sub { > my ($args) = @_; > my ( $dbh, $out ) = @$args{qw(dbh out)}; >@@ -10,5 +10,7 @@ return { > $dbh->do( > q{ INSERT IGNORE INTO authorised_values (category, authorised_value, lib) VALUES ('HOLD_CANCELLATION','RECALLED','Hold was converted to a recall') } > ); >+ >+ say $out "Added RECALLED value to HOLD_CANCELLATION authorised value category"; > }, > }; >diff --git a/installer/data/mysql/atomicupdate/bug_31391_-_add_RecallsInterface_syspref.pl b/installer/data/mysql/atomicupdate/bug_31391_-_add_RecallsInterface_syspref.pl >index abb370c8642..17c0896d332 100644 >--- a/installer/data/mysql/atomicupdate/bug_31391_-_add_RecallsInterface_syspref.pl >+++ b/installer/data/mysql/atomicupdate/bug_31391_-_add_RecallsInterface_syspref.pl >@@ -2,7 +2,7 @@ use Modern::Perl; > > return { > bug_number => "31391", >- description => "Add new system preference RecallsInterface", >+ description => "Staff-side recalls", > up => sub { > my ($args) = @_; > my ( $dbh, $out ) = @$args{qw(dbh out)}; >@@ -10,5 +10,7 @@ return { > $dbh->do( > q{INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES ('RecallsInterface','opac','opac|staff|both','The interface that recalls can be placed through','Choice') } > ); >+ >+ say $out "Added system preference 'RecallsInterface'"; > }, > }; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc >index 2fc06748685..8a1e64f8879 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc >@@ -25,6 +25,7 @@ > <th id="delete" data-colname="delete">Delete</th> > <th id="suspend" data-colname="suspend">Suspend</th> > <th id="print_slip" data-colname="print_slip">Print hold/transfer slip</th> >+ <th id="convert_to_recall" data-colname="convert_to_recall">Convert hold to recall</th> > </tr> > </thead> > [%- SET first_priority = 0 -%] >@@ -365,6 +366,11 @@ > [% ELSE %] > <td></td> > [% END %] >+ <td> >+ [% IF Koha.Preference('UseRecalls') AND Koha.Preference('RecallsInterface') != 'opac' %] >+ <a class="convert-to-recall btn" title="Convert hold to recall" data-id="[% hold.reserve_id | html %]">Mark for conversion to recall</a> >+ [% END %] >+ </td> > </tr> > [% END %] > </tbody> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >index 9060b53cc1d..ec4aa228002 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >@@ -1474,6 +1474,15 @@ Circulation: > 1: Use > 0: "Don't use" > - recalls. Make sure you configure <a href="/cgi-bin/koha/admin/smart-rules.pl">circulation and fine rules</a> for recalls once enabled. >+ - >+ - Recalls can be placed through >+ - pref: RecallsInterface >+ default: opac >+ choices: >+ opac: the OPAC only >+ staff: the staff interface only >+ both: both the OPAC and the staff interface >+ - . (Requires <a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=UseRecalls">UseRecalls</a>.) > > SIP2: > - >@@ -1515,13 +1524,4 @@ Circulation: > choices: > 1: Enable > 0: Disable >- - "the curbside pickup module." >- - >- - Recalls can be placed through >- - pref: RecallsInterface >- default: opac >- choices: >- opac: the OPAC only >- staff: the staff interface only >- both: both the OPAC and the staff interface >- - . (Requires <a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=UseRecalls">UseRecalls</a>.) >\ No newline at end of file >+ - "the curbside pickup module." >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/recalls/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/recalls/request.tt >index cc1144c78e4..00a25cb1b91 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/recalls/request.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/recalls/request.tt >@@ -52,6 +52,10 @@ > <div class="dialog alert"> Unable to place a recall. Check your circulation rules. </div> > [% END %] > >+ [% IF patron_holds_count %] >+ <div class="dialog alert alert-info"> Patron has placed one or more record-level holds. <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% biblio.biblionumber | html %]">Convert a hold to a recall</a>. </div> >+ [% END %] >+ > <fieldset class="rows"> > <legend>Recall details</legend> > <form id="recallform" action="/cgi-bin/koha/recalls/request.pl" method="post"> >@@ -103,7 +107,7 @@ > <th>Barcode</th> > [% UNLESS ( single_branch_mode ) %] > <th>Home library</th> >- <th>Last location</th> >+ <th>Holding library</th> > [% END %] > <th>Collection</th> > <th>Call number</th> >@@ -144,7 +148,7 @@ > > > [% END %] > [% IF ( item.itemlost || item.withdrawn ) %] >- <span class="lost">Unavailable (lost or missing)</span> >+ <span class="lost">Unavailable (lost or withdrawn)</span> > [% END %] > [% IF ( item.notforloan ) %] > <span class="notforloan">Not for loan ([% item.notforloan | html %])</span> >@@ -161,7 +165,7 @@ > [% ELSIF ( hold.waitingdate ) %] > <span class="waiting"> Waiting for patron at [% Branches.GetName( hold.branchcode ) | html %] since [% hold.waitingdate | $KohaDates %]. </span> > [% ELSIF ( hold.borrowernumber == logged_in_user.borrowernumber ) %] >- <span class="waiting"> Patron has already placed a <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% patron.borrowernumber | uri %]#reserves">reserve</a> on this item. </span> >+ <span class="waiting"> Patron has already placed a <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% patron.borrowernumber | uri %]#reserves">hold</a> on this item. </span> > [% END # / IF ( item.recall or hold ) %] > </td> > </tr> >@@ -204,29 +208,31 @@ > </fieldset> > [% END %] > >- <h2>Existing recalls</h2> >+ <div class="page-section"> >+ <h2>Existing recalls</h2> > >- [% IF Koha.Preference('UseRecalls') %] >- [% IF recalls.count %] >- <div class="page-section"> >- <form method="post" action="/cgi-bin/koha/recalls/request.pl"> >- [% INCLUDE 'csrf-token.inc' %] >- <input type="hidden" name="op" value="cud-cancel_multiple_recalls" /> >- <input type="hidden" name="biblionumber" value="[% biblio.biblionumber | html %]" /> >- <input type="checkbox" id="select_all" /> <span id="select_all_text">Select all</span> >- [% INCLUDE 'recalls.inc' %] >- <fieldset class="action"> >- <button type="submit" id="cancel_selected" class="btn btn-default btn-sm">Cancel selected recalls</button> >- </fieldset> >- </form> >- </div> >- <!-- /.page-section --> >+ [% IF Koha.Preference('UseRecalls') %] >+ [% IF recalls.count %] >+ <div class="page-section"> >+ <form method="post" action="/cgi-bin/koha/recalls/request.pl"> >+ [% INCLUDE 'csrf-token.inc' %] >+ <input type="hidden" name="op" value="cud-cancel_multiple_recalls" /> >+ <input type="hidden" name="biblionumber" value="[% biblio.biblionumber | html %]" /> >+ <input type="checkbox" id="select_all" /> <span id="select_all_text">Select all</span> >+ [% INCLUDE 'recalls.inc' %] >+ <fieldset class="action"> >+ <button type="submit" id="cancel_selected" class="btn btn-primary btn-sm">Cancel selected recalls</button> >+ </fieldset> >+ </form> >+ </div> >+ <!-- /.page-section --> >+ [% ELSE %] >+ <div class="alert alert-info">No recalls have been made.</div> >+ [% END %] > [% ELSE %] >- <div class="alert alert-info">No recalls have been made.</div> >+ <div class="alert alert-info">Recalls have not been enabled. Enable the <a href="/cgi-bin/koha/admin/preferences.pl?tab=circulation">UseRecalls</a> system preference to use recalls.</div> > [% END %] >- [% ELSE %] >- <div class="alert alert-info">Recalls have not been enabled. Enable the <a href="/cgi-bin/koha/admin/preferences.pl?tab=circulation">UseRecalls</a> system preference to use recalls.</div> >- [% END %] >+ </div> > [% END %] > [% END %] > >@@ -235,10 +241,13 @@ > [% INCLUDE 'datatables.inc' %] > [% INCLUDE 'columns_settings.inc' %] > [% INCLUDE 'calendar.inc' %] >+ [% INCLUDE 'select2.inc' %] > [% SET url_biblio_params = "biblionumber=" _ biblio.biblionumber %] > [% PROCESS patron_search_js table_id => 'table_borrowers', categories => categories, libraries => libraries, extended_attribute_types => attribute_type_codes, columns => columns, open_on_row_click => 1, on_click_url => '/cgi-bin/koha/recalls/request.pl?' _ url_biblio_params, redirect_if_one_result => 1, redirect_url => '/cgi-bin/koha/recalls/request.pl?' _ url_biblio_params, redirect_if_attribute_equal => 'cardnumber' %] > <script> > table_settings = [% TablesSettings.GetColumns( 'circ', 'circulation', 'table_borrowers', 'json' ) | $raw %]; >+ $.fn.select2.defaults.set("width", "100%" ); >+ $.fn.select2.defaults.set("dropdownAutoWidth", true ); > $(document).ready(function(){ > $("#recalls_patronsearch").on("submit", filter); > [% UNLESS patron %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >index 01ac98eb02f..89b05a07936 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >@@ -255,7 +255,7 @@ > [% IF ( recallerror ) %] > <div class="dialog alert"> > <h3>Hold cannot be converted to a recall</h3> >- <p>A recall cannot be placed on one or more holds. Check your <a href="/cgi-bin/koha/admin/smart-rules.pl">circulation and fine rules</a>.</p> >+ <p>A recall cannot be placed for one or more holds. Check your <a href="/cgi-bin/koha/admin/smart-rules.pl">circulation and fine rules</a>.</p> > </div> > [% END %] > >@@ -1961,6 +1961,10 @@ > window.open("/cgi-bin/koha/circ/hold-transfer-slip.pl?reserve_id=" + reserve_id); > return false; > }); >+ $(".convert-to-recall").click(function () { >+ var reserve_id = $(this).attr("data-id"); >+ $("select[class='rank-request'][data-hold-id='" + reserve_id + "']").val("recall"); >+ }); > </script> > [% END %] > >diff --git a/recalls/request.pl b/recalls/request.pl >index 29a8b9941a6..22c509082fd 100755 >--- a/recalls/request.pl >+++ b/recalls/request.pl >@@ -138,9 +138,12 @@ if ($borrowernumber) { > if ( !$biblio->can_be_recalled( { patron => $patron } ) ) { > $error = 1; > } >+ my $patron_holds_count = Koha::Holds->search( >+ { borrowernumber => $borrowernumber, biblionumber => $biblio->biblionumber, item_level_hold => 0 } )->count; > > $template->param( >- patron => $patron, >+ patron => $patron, >+ patron_holds_count => $patron_holds_count, > ); > } > } >diff --git a/t/db_dependent/Holds.t b/t/db_dependent/Holds.t >index 9627786db09..2445ce88cc6 100755 >--- a/t/db_dependent/Holds.t >+++ b/t/db_dependent/Holds.t >@@ -2125,6 +2125,7 @@ subtest 'ModReserve to convert a hold to a recall' => sub { > surname => 'whatever surname', > categorycode => $category->{categorycode}, > branchcode => $branch, >+ email => 'name@email.com', > } > )->store; > my $borrowernumber = $patron->borrowernumber; >@@ -2135,6 +2136,7 @@ subtest 'ModReserve to convert a hold to a recall' => sub { > surname => 'whatever surname', > categorycode => $category->{categorycode}, > branchcode => $branch, >+ email => 'name2@email.com', > } > )->store; > >@@ -2156,6 +2158,18 @@ subtest 'ModReserve to convert a hold to a recall' => sub { > } > ); > >+ my $notice = Koha::Notice::Template->new( >+ { >+ name => 'Hold cancellation', >+ module => 'reserves', >+ code => 'HOLD_CANCELLATION', >+ title => 'Hold cancelled', >+ content => 'Your hold was cancelled.', >+ message_transport_type => 'email', >+ branchcode => q{}, >+ } >+ )->store(); >+ > my $reserve_id = AddReserve( > { > branchcode => $branch, >-- >2.34.1
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 31391
:
139442
|
139443
|
139444
|
139446
|
139642
|
139643
|
139644
|
139645
|
141474
|
142594
|
143155
|
144104
|
144105
|
144131
|
144132
|
144133
|
144134
|
144135
|
144136
|
147581
|
147582
|
150485
|
150486
|
150487
|
150488
|
150489
|
150490
|
150491
|
156995
|
156996
|
156997
|
156998
|
156999
|
157000
|
157001
|
158691
|
158692
|
158693
|
158694
|
158695
|
158825
|
158826
|
158827
|
158828
|
158829
|
158830
|
158831
|
158832
|
172166
|
172167
|
172168
|
172169
|
172170
|
172171
|
172172
|
172173
|
172174
|
172175
|
173839
|
173840
|
173841
|
173842
|
173843
|
173844
|
173845
|
173846
|
173847
|
174396
|
174822
|
174823
|
174824
|
174825
|
174826
|
174827
|
174828
|
174829
|
174830
|
174831
|
177901
|
177902
|
177903
|
177904
|
177905
|
177906
| 177907 |
177908
|
177909
|
177910