From 7899491af4d38f54f71d5abfdb8f6b42becd9efb Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Fri, 2 Nov 2012 11:03:20 +0100 Subject: [PATCH] Bug 7674: Add 2 sysprefs to indicate the branch we want to separate on The 2 sysprefs are SeparateHoldingsBranch and OpacSeparateHoldingsBranch and permit to chose between home branch and holding branch. --- catalogue/detail.pl | 9 +++--- installer/data/mysql/sysprefs.sql | 2 ++ installer/data/mysql/updatedatabase.pl | 31 ++++++++++---------- .../en/modules/admin/preferences/cataloguing.pref | 17 +++++------ .../prog/en/modules/admin/preferences/opac.pref | 11 +++++++ opac/opac-detail.pl | 5 ++-- 6 files changed, 44 insertions(+), 31 deletions(-) diff --git a/catalogue/detail.pl b/catalogue/detail.pl index ab76a00..e87aefa 100755 --- a/catalogue/detail.pl +++ b/catalogue/detail.pl @@ -186,9 +186,9 @@ my $currentbranch = C4::Context->userenv ? C4::Context->userenv->{branch} : unde if ($currentbranch and C4::Context->preference('SeparateHoldings')) { $template->param(SeparateHoldings => 1); } +my $separatebranch = C4::Context->preference('SeparateHoldingsBranch') || 'homebranch'; foreach my $item (@items) { - - my $homebranchcode = $item->{homebranch}; + my $itembranchcode = $item->{$separatebranch}; $item->{homebranch} = GetBranchName($item->{homebranch}); # can place holds defaults to yes @@ -271,8 +271,9 @@ foreach my $item (@items) { if (defined($item->{'materials'}) && $item->{'materials'} =~ /\S/){ $materials_flag = 1; - if ($currentbranch and $currentbranch ne "NO_LIBRARY_SET" and C4::Context->preference('SeparateHoldings')) { - if ($homebranchcode and $homebranchcode eq $currentbranch) { + if ($currentbranch and $currentbranch ne "NO_LIBRARY_SET" + and C4::Context->preference('SeparateHoldings')) { + if ($itembranchcode and $itembranchcode eq $currentbranch) { push @itemloop, $item; } else { push @otheritemloop, $item; diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 1c870b7..2e6a63f 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -387,4 +387,6 @@ INSERT INTO systempreferences (variable,value,explanation,type) VALUES('INTRAdid INSERT INTO systempreferences (variable, value, options, explanation, type) VALUES ('BlockReturnOfWithdrawnItems', '1', '0', 'If enabled, items that are marked as withdrawn cannot be returned.', 'YesNo'); INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('HoldsToPullStartDate','2','Set the default start date for the Holds to pull list to this many days ago',NULL,'Integer'); INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SeparateHoldings', '0', 'Separate current branch holdings from other holdings', NULL, 'YesNo'); +INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SeparateHoldingsBranch', 'homebranch', 'Branch used to separate holdings', 'homebranch|holdingbranch', 'Choice'); INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacSeparateHoldings', '0', 'Separate current branch holdings from other holdings (OPAC)', NULL, 'YesNo'); +INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacSeparateHoldingsBranch', 'homebranch', 'Branch used to separate holdings (OPAC)', 'homebranch|holdingbranch', 'Choice'); diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 71e70bb..3f02aaa 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -5926,22 +5926,6 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } -$DBversion = "XXX"; -if (C4::Context->preference("Version") < TransformToNum($DBversion)) { - $dbh->do(" - INSERT INTO systempreferences (variable,value,explanation,options,type) - VALUES('SeparateHoldings', '0', 'Separate current branch holdings from other holdings', NULL, 'YesNo'); - "); - $dbh->do(" - INSERT INTO systempreferences (variable,value,explanation,options,type) - VALUES('OpacSeparateHoldings', '0', 'Separate current branch holdings from other holdings (OPAC)', NULL, 'YesNo'); - "); - - print "Upgrade to $DBversion done (Add systempreferences SeparateHoldings and OpacSeparateHoldings) \n"; - SetVersion ($DBversion); -} - - $DBversion = "3.09.00.053"; if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do( @@ -6035,6 +6019,21 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = "XXX"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(" + INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES + ('SeparateHoldings', '0', 'Separate current branch holdings from other holdings', NULL, 'YesNo'), + ('SeparateHoldingsBranch', 'homebranch', 'Branch used to separate holdings', 'homebranch|holdingbranch', 'Choice'), + ('OpacSeparateHoldings', '0', 'Separate current branch holdings from other holdings (OPAC)', NULL, 'YesNo'), + ('OpacSeparateHoldingsBranch', 'homebranch', 'Branch used to separate holdings (OPAC)', 'homebranch|holdingbranch', 'Choice') + "); + + print "Upgrade to $DBversion done (Add systempreferences SeparateHoldings, SeparateHoldingsBranch, OpacSeparateHoldings and OpacSeparateHoldingsBranch) \n"; + SetVersion ($DBversion); +} + + =head1 FUNCTIONS =head2 TableExists($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref index 098f498..f2a16c6 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref @@ -159,12 +159,11 @@ Cataloging: - - pref: SeparateHoldings choices: - yes: "Separate" - no: "Don't separate" - - current branch holdings from other holdings at staff interface. - - - - pref: OpacSeparateHoldings - choices: - yes: "Separate" - no: "Don't separate" - - current branch holdings from other holdings at OPAC. + yes: Separate + no: Don't separate + - 'items display into two tabs. First tab contains items whose' + - pref: SeparateHoldingsBranch + choices: + homebranch: 'home branch' + holdingbranch: 'holding branch' + - 'is the branch of user logged in. The other tab contains other items.' 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 1a9fa09..b0d46c2 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 @@ -258,6 +258,17 @@ OPAC: - '
Note: Available options are: BIBTEX (bibtex), Dublin Core (dc),' - 'MARCXML (marcxml), MARC-8 encoded MARC (marc8), Unicode/UTF-8 encoded MARC (utf8),' - 'Unicode/UTF-8 encoded MARC without local use -9xx, x9x, xx9- fields and subfields (marcstd), MODS (mods), RIS (ris)' + - + - pref: OpacSeparateHoldings + choices: + yes: Separate + no: Don't separate + - 'items display into two tabs. First tab contains items whose' + - pref: OpacSeparateHoldingsBranch + choices: + homebranch: 'home branch' + holdingbranch: 'holding branch' + - 'is the branch of user logged in. The other tab contains other items.' Features: - - pref: opacuserlogin diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index a0d4970..4fce03d 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -515,6 +515,7 @@ my $currentbranch = C4::Context->userenv ? C4::Context->userenv->{branch} : unde if ($currentbranch and C4::Context->preference('OpacSeparateHoldings')) { $template->param(SeparateHoldings => 1); } +my $separatebranch = C4::Context->preference('OpacSeparateHoldingsBranch'); for my $itm (@items) { $itm->{holds_count} = $item_reserves{ $itm->{itemnumber} }; $itm->{priority} = $priority{ $itm->{itemnumber} }; @@ -565,9 +566,9 @@ for my $itm (@items) { $itm->{transfertfrom} = $branches->{$transfertfrom}{branchname}; $itm->{transfertto} = $branches->{$transfertto}{branchname}; } - my $homebranch = $itm->{homebranch}; + my $itembranch = $itm->{$separatebranch}; if ($currentbranch and C4::Context->preference('OpacSeparateHoldings')) { - if ($homebranch and $homebranch eq $currentbranch) { + if ($itembranch and $itembranch eq $currentbranch) { push @itemloop, $itm; } else { push @otheritemloop, $itm; -- 1.7.10.4