From dff808f8fbd9ada1a8094725261973aa1d24eb88 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 Content-Type: text/plain; charset=utf-8 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 --- Koha/Biblio.pm | 1 + installer/data/mysql/atomicupdate/bug_20130.perl | 8 ++++++++ installer/data/mysql/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 468591c66e..0db7d7dd0d 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -835,6 +835,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/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 91f17b5a95..76625636ab 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/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 reading 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'), ('ArticleRequestsMandatoryFieldsItemsOnly', '', 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 710b86cbe1..70dbbbe3ea 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 @@ -1124,6 +1124,12 @@ Circulation: no: "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