Bug 5979 - OPAC ISBD view has its own syspref
authorAlex Arnaud <alex.arnaud@biblibre.com>
Wed, 28 Oct 2015 14:49:28 +0000 (15:49 +0100)
committerBrendan Gallagher <bredan@bywatersolutions.com>
Fri, 22 Apr 2016 03:14:23 +0000 (03:14 +0000)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Works well, empty OPACISBD removes link.
Test pass.
Small koha-qa error fixed in followup

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Brendan Gallagher <bredan@bywatersolutions.com>

C4/Biblio.pm
t/Biblio/Isbd.t [new file with mode: 0644]

index 3e88d6d..305df2c 100644 (file)
@@ -924,12 +924,13 @@ Return the ISBD view which can be included in opac and intranet
 sub GetISBDView {
     my ( $biblionumber, $template ) = @_;
     my $record   = GetMarcBiblio($biblionumber, 1);
+    my $sysprefname = $template eq 'opac' ? 'opacisbd' : 'isbd';
     return unless defined $record;
     my $itemtype = &GetFrameworkCode($biblionumber);
     my ( $holdingbrtagf, $holdingbrtagsubf ) = &GetMarcFromKohaField( "items.holdingbranch", $itemtype );
     my $tagslib = &GetMarcStructure( 1, $itemtype );
 
-    my $ISBD = C4::Context->preference('isbd');
+    my $ISBD = C4::Context->preference($sysprefname);
     my $bloc = $ISBD;
     my $res;
     my $blocres;
diff --git a/t/Biblio/Isbd.t b/t/Biblio/Isbd.t
new file mode 100644 (file)
index 0000000..7aeb31b
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
+
+use Modern::Perl;
+
+use Test::More tests => 3;
+use Test::MockModule;
+use MARC::Record;
+use t::lib::Mocks qw( mock_preference );
+
+BEGIN {
+        use_ok('C4::Biblio');
+}
+
+my $dbh = C4::Context->dbh;
+# Start transaction
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+
+my $template = '#200|<h2>Title : |{200a}{ by 200f}|</h2>';
+my $opac_template = '#200|<h2>Title : |{200a}{ (200f)}|</h2>';
+t::lib::Mocks::mock_preference('isbd', $template);
+t::lib::Mocks::mock_preference('opacisbd', $opac_template);
+
+my $record = MARC::Record->new();
+$record->append_fields(
+    MARC::Field->new('200', '', '', 'a' => 'Montains'),
+    MARC::Field->new('200', '', '', 'f' => 'Keith Lye'),
+);
+my ($bibnum, $title, $bibitemnum) = AddBiblio($record, '');
+
+my $isbd = GetISBDView($bibnum);
+is($isbd, '<h2>Title : Montains by Keith Lye</h2>', 'ISBD is correct');
+
+my $opacisbd = GetISBDView($bibnum, 'opac');
+is($opacisbd, '<h2>Title : Montains (Keith Lye)</h2>', 'OPAC ISBD is correct');