@@ -, +, @@
OPACShowHoldQueueDetails
- None
- Holds number only
- Holds number and priority
---
admin/systempreferences.pl | 2 +-
installer/data/mysql/sysprefs.sql | 2 +-
installer/data/mysql/updatedatabase.pl | 15 +++++
.../prog/en/modules/admin/preferences/opac.pref | 9 ++-
koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt | 17 ++++++
.../opac-tmpl/prog/en/modules/opac-reserve.tt | 52 +++++++++--------
opac/opac-detail.pl | 21 +++++++
opac/opac-reserve.pl | 60 +++++++++++---------
opac/opac-user.pl | 11 ++-
9 files changed, 127 insertions(+), 62 deletions(-)
--- a/admin/systempreferences.pl
+++ a/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";
--- a/installer/data/mysql/sysprefs.sql
+++ a/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|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');
--- a/installer/data/mysql/updatedatabase.pl
+++ a/installer/data/mysql/updatedatabase.pl
@@ -5109,6 +5109,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 'holds_priority' ELSE 'none' END,
+ options = 'none|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 DropAllForeignKeys($table)
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
@@ -73,11 +73,12 @@ OPAC:
no: "Don't include"
- "COinS / OpenURL / Z39.88 in OPAC search results.
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"
+ holds: "Show holds"
+ holds_priority: "Show holds and their priority level"
+ - to patrons in the OPAC.
-
- pref: OPACShowCheckoutName
default: 0
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt
+++ a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt
@@ -629,6 +629,9 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
Status |
[% IF ( itemdata_itemnotes ) %]Notes | [% END %]
Date Due |
+ [% IF holds_count.defined %]
+ Holds |
+ [% END %]
[% FOREACH ITEM_RESULT IN ITEM_RESULTS %]
[% IF ( item_level_itypes ) %][% UNLESS ( noItemTypeImages ) %][% IF ( ITEM_RESULT.imageurl ) %][% END %][% END %] [% ITEM_RESULT.description %] | [% END %]
@@ -653,10 +656,24 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
[% INCLUDE 'item-status.inc' item = ITEM_RESULT %] |
[% IF ( itemdata_itemnotes ) %][% ITEM_RESULT.itemnotes %] | [% END %]
[% ITEM_RESULT.datedue | $KohaDates %] |
+ [% IF holds_count.defined %]
+ [% ITEM_RESULT.holds_count %]
+ [% IF ITEM_RESULT.priority %]
+ (priority [% ITEM_RESULT.priority %])
+ [% END %]
+ |
+ [% END %]
[% END %]
[% END %]
+ [% IF holds_count.defined %]
+ Holds: [% holds_count %]
+ [% IF priority %]
+ (priority [% priority %])
+ [% END %]
+
+ [% END %]
[% ELSE %]
[% IF ( ALTERNATEHOLDINGS ) %]
[% FOREACH ALTERNATEHOLDING IN ALTERNATEHOLDINGS %]
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt
+++ a/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt
@@ -242,8 +242,12 @@
[% UNLESS ( item_level_itypes ) %]
Item Type |
[% END %]
- [% IF ( showpriority ) %]
- Priority |
+ [% IF ( showholds ) %]
+ Holds
+ [% IF ( showpriority ) %]
+ and priority
+ [% END %]
+ |
[% END %]
[% IF ( reserve_in_future ) %]
Hold Starts on Date |
@@ -297,19 +301,21 @@
[% END %]
- [% IF ( bibitemloo.holdable ) %][% UNLESS ( item_level_itypes ) %]
-
- [% IF ( bibitemloo.imageurl ) %][% END %]
- [% bibitemloo.description %]
- |
- [% END %][% END %]
[% IF ( bibitemloo.holdable ) %]
- [% IF ( showpriority ) %]
-
- [% bibitemloo.rank %] out of [% bibitemloo.reservecount %]
- | [% END %][% END %]
- [% IF ( reserve_in_future ) %]
- [% IF ( bibitemloo.holdable ) %]
+
+ [% UNLESS ( item_level_itypes ) %]
+ |
+ [% IF ( bibitemloo.imageurl ) %][% END %]
+ [% bibitemloo.description %]
+ |
+ [% END %]
+ [% IF showholds %]
+
+ [% IF ( showpriority ) %] [% bibitemloo.rank %] out of [% END %][% bibitemloo.reservecount %]
+ |
+ [% END %]
+ [% IF ( reserve_in_future ) %]
+
Clear Date
- | [% END %]
-
- [% END %]
- [% IF ( bibitemloo.holdable ) %]
+ |
+ [% END %]
+
Clear Date
- | [% END %]
-
- [% IF ( bibitemloo.holdable ) %]
-
- [% IF ( OPACItemHolds ) %]
-
-
+ |
+ [% IF ( OPACItemHolds ) %]
+
+
-
[% UNLESS ( bibitemloo.holdable ) %]
--- a/opac/opac-detail.pl
+++ a/opac/opac-detail.pl
@@ -479,10 +479,31 @@ 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;
+}
+if ( $show_holds_count ) {
+ my ($reserve_count,$reserves) = GetReservesFromBiblionumber($biblionumber);
+ $template->param( holds_count => $reserve_count );
+ foreach (@$reserves) {
+ $item_reserves{ $_->{itemnumber} }++ if $_->{itemnumber};
+ if ($show_priority && $_->{borrowernumber} == $borrowernumber) {
+ $_->{itemnumber}
+ ? ($priority{ $_->{itemnumber} } = $_->{priority})
+ : ($template->param( priority => $_->{priority} ));
+ }
+ }
+}
+
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'} )
--- a/opac/opac-reserve.pl
+++ a/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' ) &&
--- a/opac/opac-user.pl
+++ a/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;
--
|