From ba6896e3ed5385d1aeba58f7902faddd83738793 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 https://bugs.koha-community.org/show_bug.cgi?id=20130 --- 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 37d7fc14d7..48e4a478db 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -906,6 +906,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 1034313061..ff61cbcedf 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -55,6 +55,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 9acc59f50e..c923ac5db4 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 @@ -1173,6 +1173,12 @@ Circulation: 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: always: Always show 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.11.0