From b914bbd941182c53f4e6a9a346cbe01d18eb35a5 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Tue, 8 Sep 2020 13:29:45 +0000 Subject: [PATCH] Bug 20310: Adding a pref to control behavior If people want to control the redirection, we could add a pref like ArticleRequestsHostRedirection. If it is not enabled, the party is over. Test plan: Test if redirection stops on a child and host when you disable. Signed-off-by: Marcel de Rooy Signed-off-by: Martin Renvoize --- Koha/Biblio.pm | 1 + installer/data/mysql/atomicupdate/bug_20130.perl | 8 ++++++++ installer/data/mysql/mandatory/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/circulation.pref | 6 ++++++ t/db_dependent/Koha/Biblio/host_record.t | 1 + 5 files changed, 17 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug_20130.perl diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm index 3b38a82ce0..12b22d90ef 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -910,6 +910,7 @@ sub host_record { my ($self, $params) = @_; my $no_items = $params->{no_items}; return if C4::Context->preference('marcflavour') eq 'UNIMARC'; # TODO + return if !C4::Context->preference('ArticleRequestsHostRedirection'); return if $params->{no_items} && $self->items->count > 0; my $record; diff --git a/installer/data/mysql/atomicupdate/bug_20130.perl b/installer/data/mysql/atomicupdate/bug_20130.perl new file mode 100644 index 0000000000..c8e7143321 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_20130.perl @@ -0,0 +1,8 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{ + INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES + ('ArticleRequestsHostRedirection', '0', NULL, 'Enables redirection from child to host', 'YesNo') + }); + NewVersion( $DBversion, 20310, "Add pref ArticleRequestsHostRedirection"); +} diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 3430bc26e7..a795c8168f 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -56,6 +56,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('AnonSuggestions','0',NULL,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber','YesNo'), ('AnonymousPatron','0',NULL,'Set the identifier (borrowernumber) of the anonymous patron. Used for suggestion and checkout history privacy',''), ('ArticleRequests', '0', NULL, 'Enables the article request feature', 'YesNo'), +('ArticleRequestsHostRedirection', '0', NULL, 'Enables redirection from child to host', 'YesNo'), ('ArticleRequestsLinkControl', 'calc', 'always|calc', 'Control display of article request link on search results', 'Choice'), ('ArticleRequestsMandatoryFields', '', NULL, 'Comma delimited list of required fields for bibs where article requests rule = ''yes''', 'multiple'), ('ArticleRequestsMandatoryFieldsItemOnly', '', NULL, 'Comma delimited list of required fields for bibs where article requests rule = ''item_only''', 'multiple'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 348a4558d1..e8ca2ffb16 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -1192,6 +1192,12 @@ Circulation: 1: Enable 0: "Don't enable" - patrons to place article requests. + - + - pref: ArticleRequestsHostRedirection + choices: + yes: Enable + no: Disable + - " redirection from child to host based on MARC21 773$w when the child has no items." - - pref: ArticleRequestsLinkControl choices: diff --git a/t/db_dependent/Koha/Biblio/host_record.t b/t/db_dependent/Koha/Biblio/host_record.t index 59b9f139e6..bf728f1d38 100644 --- a/t/db_dependent/Koha/Biblio/host_record.t +++ b/t/db_dependent/Koha/Biblio/host_record.t @@ -40,6 +40,7 @@ subtest 'host_record' => sub { t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' ); t::lib::Mocks::mock_preference( 'MARCOrgCode', 'xyz' ); + t::lib::Mocks::mock_preference( 'ArticleRequestsHostRedirection', 1 ); my $bib1 = $builder->build_object({ class => 'Koha::Biblios' }); my $bib2 = $builder->build_object({ class => 'Koha::Biblios' }); -- 2.20.1