Bugzilla – Attachment 9439 Details for
Bug 7398
Show number of holds on a title in the OPAC details
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
bug_7398: Replaced OPACDisplayRequestPriority syspref with OPACShowHoldQueueDetails
bug7398-Replaced-OPACDisplayRequestPriority-syspre.patch (text/plain), 16.93 KB, created by
Kyle M Hall
on 2012-05-07 16:40:15 UTC
(
hide
)
Description:
bug_7398: Replaced OPACDisplayRequestPriority syspref with OPACShowHoldQueueDetails
Filename:
MIME Type:
Creator:
Kyle M Hall
Created:
2012-05-07 16:40:15 UTC
Size:
16.93 KB
patch
obsolete
>From 1c7ef7499f3975dd54e4ecd78a319c3c63f48e9b Mon Sep 17 00:00:00 2001 >From: Srdjan <srdjan@catalyst.net.nz> >Date: Thu, 19 Apr 2012 16:32:18 +1200 >Subject: [PATCH] bug_7398: Replaced OPACDisplayRequestPriority syspref with OPACShowHoldQueueDetails > >New syspref is Choice, options being: >- None >- Priority only >- Holds number only >- Holds number and priority > >Show holds count on OPAC detail > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >--- > admin/systempreferences.pl | 2 +- > installer/data/mysql/sysprefs.sql | 2 +- > installer/data/mysql/updatedatabase.pl | 15 +++++ > .../prog/en/modules/admin/preferences/opac.pref | 10 ++- > koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt | 31 ++++++++++ > .../opac-tmpl/prog/en/modules/opac-reserve.tt | 34 +++++++---- > opac/opac-detail.pl | 24 ++++++++ > opac/opac-reserve.pl | 60 +++++++++++--------- > opac/opac-user.pl | 11 ++- > 9 files changed, 139 insertions(+), 50 deletions(-) > >diff --git a/admin/systempreferences.pl b/admin/systempreferences.pl >index 5e3848d..3659791 100755 >--- a/admin/systempreferences.pl >+++ b/admin/systempreferences.pl >@@ -348,7 +348,7 @@ $tabsysprefs{OPACViewOthersSuggestions} = "OPAC"; > $tabsysprefs{URLLinkText} = "OPAC"; > $tabsysprefs{OPACSearchForTitleIn} = "OPAC"; > $tabsysprefs{OPACShelfBrowser} = "OPAC"; >-$tabsysprefs{OPACDisplayRequestPriority} = "OPAC"; >+$tabsysprefs{OPACShowHoldQueueDetails} = "OPAC"; > $tabsysprefs{OPACAllowHoldDateInFuture} = "OPAC"; > $tabsysprefs{OPACPatronDetails} = "OPAC"; > $tabsysprefs{OPACFinesTab} = "OPAC"; >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index 49debd2..47f347a 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -233,7 +233,7 @@ INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES > INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('CurrencyFormat','US','US|FR','Determines the display format of currencies. eg: \'36000\' is displayed as \'360 000,00\' in \'FR\' or \'360,000.00\' in \'US\'.','Choice'); > INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('AcqCreateItem','ordering','ordering|receiving|cataloguing','Define when the item is created : when ordering, when receiving, or in cataloguing module','Choice'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowRenewalLimitOverride', '0', 'if ON, allows renewal limits to be overridden on the circulation screen',NULL,'YesNo'); >-INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('OPACDisplayRequestPriority','0','','Show patrons the priority level on holds in the OPAC','YesNo'); >+INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('OPACShowHoldQueueDetails','none','none|priority|holds|holds_priority','Show holds details in OPAC','Choice'); > INSERT INTO `systempreferences` ( `variable` , `value` , `options` , `explanation` , `type` ) VALUES ( 'UseBranchTransferLimits', '0', '', 'If ON, Koha will will use the rules defined in branch_transfer_limits to decide if an item transfer should be allowed.', 'YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowHoldPolicyOverride', '0', 'Allow staff to override hold policies when placing holds',NULL,'YesNo'); > INSERT INTO `systempreferences` ( `variable` , `value` , `options` , `explanation` , `type` ) VALUES ( 'BranchTransferLimitsType', 'ccode', 'itemtype|ccode', 'When using branch transfer limits, choose whether to limit by itemtype or collection code.', 'Choice'); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 84f0437..0b58fa5 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -5212,6 +5212,21 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { > SetVersion($DBversion); > } > >+ >+ >+$DBversion = "3.07.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do("UPDATE systempreferences SET >+ variable = 'OPACShowHoldQueueDetails', >+ value = CASE value WHEN '1' THEN 'priority' ELSE 'none' END, >+ options = 'none|priority|holds|holds_priority', >+ explanation = 'Show holds details in OPAC', >+ type = 'Choice' >+ WHERE variable = 'OPACDisplayRequestPriority'"); >+ print "Upgrade to $DBversion done (Changed system preference OPACDisplayRequestPriority -> OPACShowHoldQueueDetails)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >index eb74d81..3bd2441 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >@@ -79,11 +79,13 @@ OPAC: > no: "Don't include" > - "COinS / OpenURL / Z39.88 in OPAC search results. <br/>Warning: Enabling this feature will slow OPAC search response times." > - >- - pref: OPACDisplayRequestPriority >+ - pref: OPACShowHoldQueueDetails > choices: >- yes: Show >- no: "Don't show" >- - patrons the priority level of their holds in the OPAC. >+ none: "Don't show any hold details" >+ priority: "Show priority level" >+ holds: "Show holds" >+ holds_priority: "Show holds and their priority level" >+ - to patrons in the OPAC. > - > - pref: OPACShowCheckoutName > default: 0 >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >index cc59fb2..5bbcdb7 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt >@@ -718,6 +718,11 @@ YAHOO.util.Event.onContentReady("furtherm", function () { > <th id="item_status">Status</th> > [% IF ( itemdata_itemnotes ) %]<th id="item_notes">Notes</th>[% END %] > <th id="item_datedue">Date due</th> >+ [% IF holds_count.defined %] >+ <th>Item holds</th> >+ [% ELSIF show_priority %] >+ <th>Item hold queue priority</th> >+ [% END %] > </tr></thead> > <tbody>[% FOREACH ITEM_RESULT IN ITEM_RESULTS %] > <tr>[% IF ( item_level_itypes ) %]<td>[% UNLESS ( noItemTypeImages ) %][% IF ( ITEM_RESULT.imageurl ) %]<img src="[% ITEM_RESULT.imageurl %]" title="[% ITEM_RESULT.description %]" alt="[% ITEM_RESULT.description %]" />[% END %][% END %] [% ITEM_RESULT.description %]</td>[% END %] >@@ -742,10 +747,36 @@ YAHOO.util.Event.onContentReady("furtherm", function () { > <td>[% INCLUDE 'item-status.inc' item = ITEM_RESULT %]</td> > [% IF ( itemdata_itemnotes ) %]<td>[% ITEM_RESULT.itemnotes %]</td>[% END %] > <td>[% ITEM_RESULT.datedue | $KohaDates %]</td> >+ [% IF holds_count.defined || show_priority %] >+ <td> >+ [% IF holds_count.defined %] [% ITEM_RESULT.holds_count %] [% END %] >+ [% IF ITEM_RESULT.priority %] >+ [% IF holds_count.defined %] >+ (priority [% ITEM_RESULT.priority %]) >+ [% ELSE %] >+ [% ITEM_RESULT.priority %] >+ [% END %] >+ [% END %] >+ </td> >+ [% END %] > </tr> > [% END %]</tbody> > </table> > [% END %] >+ [% IF holds_count.defined || priority %] >+ <div id="bib_holds"> >+ [% IF holds_count.defined %] >+ Total holds: [% holds_count %] >+ [% END %] >+ [% IF priority %] >+ [% IF holds_count.defined %] >+ (priority [% priority %]) >+ [% ELSE %] >+ Overall queue priority: [% priority %] >+ [% END %] >+ [% END %] >+ </div> >+ [% END %] > [% ELSE %] > [% IF ( ALTERNATEHOLDINGS ) %] > [% FOREACH ALTERNATEHOLDING IN ALTERNATEHOLDINGS %] >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt >index a78bc68..48c5deb 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt >@@ -242,7 +242,11 @@ > [% UNLESS ( item_level_itypes ) %] > <th>Item type</th> > [% END %] >- [% IF ( showpriority ) %] >+ [% IF showholds && showpriority %] >+ <th>Holds and priority</th> >+ [% ELSIF showholds %] >+ <th>Holds</th> >+ [% ELSIF showpriority %] > <th>Priority</th> > [% END %] > [% IF ( reserve_in_future ) %] >@@ -297,19 +301,23 @@ > [% END %] > > </td> >- [% IF ( bibitemloo.holdable ) %][% UNLESS ( item_level_itypes ) %] >- <td> >- [% IF ( bibitemloo.imageurl ) %]<img src="[% bibitemloo.imageurl %]" alt="" />[% END %] >- [% bibitemloo.description %] >- </td> >- [% END %][% END %] > [% IF ( bibitemloo.holdable ) %] >- [% IF ( showpriority ) %] >- <td> >- [% bibitemloo.rank %] out of [% bibitemloo.reservecount %] >- </td>[% END %][% END %] >- [% IF ( reserve_in_future ) %] >- [% IF ( bibitemloo.holdable ) %]<td> >+ <!-- HOLDABLE --> >+ [% UNLESS ( item_level_itypes ) %] >+ <td> >+ [% IF ( bibitemloo.imageurl ) %]<img src="[% bibitemloo.imageurl %]" alt="" />[% END %] >+ [% bibitemloo.description %] >+ </td> >+ [% END %] >+ [% IF showholds || showpriority %] >+ <td> >+ [% IF showpriority %] [% bibitemloo.rank %] [% END ] >+ [% IF showholds && showpriority %] out of [% END %] >+ [% IF showholds %] [% bibitemloo.reservecount %] [% END %] >+ </td> >+ [% END %] >+ [% IF ( reserve_in_future ) %] >+ <td> > <input name="reserve_date_[% bibitemloo.biblionumber %]" id="reserve_date_[% bibitemloo.biblionumber %]" size="10"> > <script language="JavaScript" type="text/javascript"> > //<![CDATA[ >diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl >index afc9498..54438ee 100755 >--- a/opac/opac-detail.pl >+++ b/opac/opac-detail.pl >@@ -486,10 +486,34 @@ if ($dat->{'count'} >= 50 && !$viewallitems) { > > my $biblio_authorised_value_images = C4::Items::get_authorised_value_images( C4::Biblio::get_biblio_authorised_values( $biblionumber, $record ) ); > >+my (%item_reserves, %priority); >+my ($show_holds_count, $show_priority); >+for ( C4::Context->preference("OPACShowHoldQueueDetails") ) { >+ m/holds/o and $show_holds_count = 1; >+ m/priority/ and $show_priority = 1; >+} >+my $has_hold; >+if ( $show_holds_count || $show_priority) { >+ my ($reserve_count,$reserves) = GetReservesFromBiblionumber($biblionumber); >+ $template->param( holds_count => $reserve_count ) if $show_holds_count; >+ foreach (@$reserves) { >+ $item_reserves{ $_->{itemnumber} }++ if $_->{itemnumber}; >+ if ($show_priority && $_->{borrowernumber} == $borrowernumber) { >+ $has_hold = 1; >+ $_->{itemnumber} >+ ? ($priority{ $_->{itemnumber} } = $_->{priority}) >+ : ($template->param( priority => $_->{priority} )); >+ } >+ } >+} >+$template->param( show_priority => $has_hold ) ; >+ > my $norequests = 1; > my $branches = GetBranches(); > my %itemfields; > for my $itm (@items) { >+ $itm->{holds_count} = $item_reserves{ $itm->{itemnumber} }; >+ $itm->{priority} = $priority{ $itm->{itemnumber} }; > $norequests = 0 > if ( (not $itm->{'wthdrawn'} ) > && (not $itm->{'itemlost'} ) >diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl >index 4e4d440..3844bc1 100755 >--- a/opac/opac-reserve.pl >+++ b/opac/opac-reserve.pl >@@ -47,7 +47,13 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( > debug => 1, > } > ); >-my $OPACDisplayRequestPriority = (C4::Context->preference("OPACDisplayRequestPriority")) ? 1 : 0; >+ >+my ($show_holds_count, $show_priority); >+for ( C4::Context->preference("OPACShowHoldQueueDetails") ) { >+ m/holds/o and $show_holds_count = 1; >+ m/priority/ and $show_priority = 1; >+} >+ > sub get_out ($$$) { > output_html_with_http_headers(shift,shift,shift); # $query, $cookie, $template->output; > exit; >@@ -113,12 +119,8 @@ $template->param( choose_branch => $OPACChooseBranch); > # > # > >-# Hash of biblionumber to biblio/biblioitems record. >-my %biblioDataHash; >- >-# Hash of itemnumber to item info. >-my %itemInfoHash; >- >+my %biblioDataHash; # Hash of biblionumber to biblio/biblioitems record. >+my %itemInfoHash; # Hash of itemnumber to item info. > foreach my $biblioNumber (@biblionumbers) { > > my $biblioData = GetBiblioData($biblioNumber); >@@ -128,33 +130,36 @@ foreach my $biblioNumber (@biblionumbers) { > > my $marcrecord= GetMarcBiblio($biblioNumber); > >- # flag indicating existence of at least one item linked via a host record >- my $hostitemsflag; >- # adding items linked via host biblios >- my @hostitemInfos = GetHostItemsInfo($marcrecord); >- if (@hostitemInfos){ >- $hostitemsflag =1; >- push (@itemInfos,@hostitemInfos); >- } >- >- >+ # flag indicating existence of at least one item linked via a host record >+ my $hostitemsflag; >+ # adding items linked via host biblios >+ my @hostitemInfos = GetHostItemsInfo($marcrecord); >+ if (@hostitemInfos){ >+ $hostitemsflag =1; >+ push (@itemInfos,@hostitemInfos); >+ } > > $biblioData->{itemInfos} = \@itemInfos; > foreach my $itemInfo (@itemInfos) { > $itemInfoHash{$itemInfo->{itemnumber}} = $itemInfo; > } > >- # Compute the priority rank. >- my ( $rank, $reserves ) = GetReservesFromBiblionumber($biblioNumber,1); >- $biblioData->{reservecount} = $rank; >- foreach my $res (@$reserves) { >- my $found = $res->{'found'}; >- if ( $found && ($found eq 'W') ) { >- $rank--; >+ if ($show_holds_count) { >+ # Compute the priority rank. >+ my ( $rank, $reserves ) = GetReservesFromBiblionumber($biblioNumber,1); >+ $biblioData->{reservecount} = 1; # new reserve >+ foreach my $res (@$reserves) { >+ my $found = $res->{'found'}; >+ if ( $found && ($found eq 'W') ) { >+ $rank--; >+ } >+ else { >+ $biblioData->{reservecount}++; >+ } > } >+ $rank++; >+ $biblioData->{rank} = $rank; > } >- $rank++; >- $biblioData->{rank} = $rank; > } > > # >@@ -528,7 +533,8 @@ $template->param(itemtable_colspan => $itemTableColspan); > > # display infos > $template->param(bibitemloop => $biblioLoop); >-$template->param( showpriority=>1 ) if $OPACDisplayRequestPriority; >+$template->param( showholds=>$show_holds_count); >+$template->param( showpriority=>$show_priority); > # can set reserve date in future > if ( > C4::Context->preference( 'AllowHoldDateInFuture' ) && >diff --git a/opac/opac-user.pl b/opac/opac-user.pl >index a9a6305..aba6877 100755 >--- a/opac/opac-user.pl >+++ b/opac/opac-user.pl >@@ -65,7 +65,10 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( > } > ); > >-my $OPACDisplayRequestPriority = (C4::Context->preference("OPACDisplayRequestPriority")) ? 1 : 0; >+my $show_priority; >+for ( C4::Context->preference("OPACShowHoldQueueDetails") ) { >+ m/priority/ and $show_priority = 1; >+} > my $patronupdate = $query->param('patronupdate'); > my $canrenew = 1; > >@@ -260,8 +263,8 @@ foreach my $res (@reserves) { > $res->{'branch'} = $branches->{ $res->{'branchcode'} }->{'branchname'}; > my $biblioData = GetBiblioData($res->{'biblionumber'}); > $res->{'reserves_title'} = $biblioData->{'title'}; >- if ($OPACDisplayRequestPriority) { >- $res->{'priority'} = '' if $res->{'priority'} eq '0'; >+ if ($show_priority) { >+ $res->{'priority'} ||= ''; > } > $res->{'suspend_until'} = C4::Dates->new( $res->{'suspend_until'}, "iso")->output("syspref") if ( $res->{'suspend_until'} ); > } >@@ -271,7 +274,7 @@ foreach my $res (@reserves) { > > $template->param( RESERVES => \@reserves ); > $template->param( reserves_count => $#reserves+1 ); >-$template->param( showpriority=>1 ) if $OPACDisplayRequestPriority; >+$template->param( showpriority=>$show_priority ); > > my @waiting; > my $wcount = 0; >-- >1.7.2.5
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 7398
:
8171
|
8181
|
8430
|
8441
|
8552
|
8625
|
8701
|
8737
|
9008
|
9251
|
9439
|
9733
|
14138