From e8c717803e7d59daddbdd18001b4f8f0ef356930 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Sat, 11 Jul 2015 17:22:41 +0200 Subject: [PATCH] Bug 14199: Unify marc orgcode plugins, not overwriting existing values Content-Type: text/plain; charset=utf-8 This patch copies code from marc21_field_003.pl to create marc21_orgcode.pl for more generic use. Other fields like 040c or 040d should use it too. Note: The plugin is used for authorities too (003, 040a). One behaviour change is added: If the corresponding field is already filled, it will not be overwritten. In the unit test marc21_orgcode already replaces marc21_field_003. Test plan: [1] Attach plugin marc21_orgcode to a field (e.g. 003) and test it in the MARC editor of Cataloguing or Authorities. [2] Check if a value is not overwritten any more. [3] Run unit test t/db_dependent/FrameworkPlugin.t; don't be distracted by the noisy warnings of marc21_field_007.pl. They will be addressed on another report. --- cataloguing/value_builder/marc21_orgcode.pl | 44 +++++++++++++++++++++++++++ t/db_dependent/FrameworkPlugin.t | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100755 cataloguing/value_builder/marc21_orgcode.pl diff --git a/cataloguing/value_builder/marc21_orgcode.pl b/cataloguing/value_builder/marc21_orgcode.pl new file mode 100755 index 0000000..48a30ab --- /dev/null +++ b/cataloguing/value_builder/marc21_orgcode.pl @@ -0,0 +1,44 @@ +#!/usr/bin/perl + +# Converted to new plugin style (Bug 13437) +# This plugin adds the MARC organization code in fields like 003, 040cd + +# Copyright 2000-2002 Katipo Communications +# +# 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 . + +use Modern::Perl; +use C4::Context; + +my $builder = sub { + my ( $params ) = @_; + my $org = C4::Context->preference('MARCOrgCode'); + return <<"HERE"; + +HERE +}; + +return { builder => $builder }; diff --git a/t/db_dependent/FrameworkPlugin.t b/t/db_dependent/FrameworkPlugin.t index 10d69e6..c85eb9f 100644 --- a/t/db_dependent/FrameworkPlugin.t +++ b/t/db_dependent/FrameworkPlugin.t @@ -163,7 +163,7 @@ sub selected_plugins { @fi = @$incl; $min = 0; #not sure how many will output } else { # some default MARC, UNIMARC and item plugins - @fi = qw| barcode.pl dateaccessioned.pl marc21_field_003.pl + @fi = qw| barcode.pl dateaccessioned.pl marc21_orgcode.pl marc21_field_005.pl marc21_field_006.pl marc21_field_007.pl marc21_field_008.pl marc21_field_008_authorities.pl marc21_leader.pl marc21_leader_authorities.pl unimarc_leader.pl unimarc_field_100.pl unimarc_field_105.pl -- 1.7.10.4