@@ -, +, @@ --- C4/Biblio.pm | 4 ++-- C4/UsageStats.pm | 3 ++- about.pl | 8 ++++---- cataloguing/addbiblio.pl | 2 +- installer/data/mysql/mandatory/sysprefs.sql | 3 ++- .../intranet-tmpl/prog/en/modules/about.tt | 8 ++++---- .../admin/preferences/authorities.pref | 19 +++++++++++++------ t/db_dependent/Biblio.t | 10 +++++----- t/db_dependent/Koha/SearchEngine/Indexer.t | 2 +- 9 files changed, 34 insertions(+), 25 deletions(-) --- a/C4/Biblio.pm +++ a/C4/Biblio.pm @@ -282,7 +282,7 @@ sub AddBiblio { # update MARC subfield that stores biblioitems.cn_sort _koha_marc_update_biblioitem_cn_sort( $record, $olddata, $frameworkcode ); - if (C4::Context->preference('BiblioAddsAuthorities')) { + if (C4::Context->preference('AutoLinkBiblios')) { BiblioAutoLink( $record, $frameworkcode ); } @@ -366,7 +366,7 @@ sub ModBiblio { logaction( "CATALOGUING", "MODIFY", $biblionumber, "biblio BEFORE=>" . $biblio->metadata->record->as_formatted ); } - if ( !$options->{disable_autolink} && C4::Context->preference('BiblioAddsAuthorities') ) { + if ( !$options->{disable_autolink} && C4::Context->preference('AutoLinkBiblios') ) { BiblioAutoLink( $record, $frameworkcode ); } --- a/C4/UsageStats.pm +++ a/C4/UsageStats.pm @@ -152,7 +152,8 @@ sub _shared_preferences { Persona AuthDisplayHierarchy AutoCreateAuthorities - BiblioAddsAuthorities + AutoLinkBiblios + AllowManualAuthorityEditing AuthorityMergeLimit AuthorityMergeMode UseAuthoritiesForTracings --- a/about.pl +++ a/about.pl @@ -172,8 +172,8 @@ if ($prefStatisticsFields) { } my $prefAutoCreateAuthorities = C4::Context->preference('AutoCreateAuthorities'); -my $prefBiblioAddsAuthorities = C4::Context->preference('BiblioAddsAuthorities'); -my $warnPrefBiblioAddsAuthorities = ( $prefAutoCreateAuthorities && ( !$prefBiblioAddsAuthorities) ); +my $prefAllowManualAuthorityEditing = C4::Context->preference('AllowManualAuthorityEditing'); +my $warnPrefAllowManualAuthorityEditing = ( $prefAutoCreateAuthorities && ( !$prefAllowManualAuthorityEditing) ); my $prefEasyAnalyticalRecords = C4::Context->preference('EasyAnalyticalRecords'); my $prefUseControlNumber = C4::Context->preference('UseControlNumber'); @@ -632,9 +632,9 @@ $template->param( mysqlVersion => $versions{'mysqlVersion'}, apacheVersion => $versions{'apacheVersion'}, zebraVersion => $zebraVersion, - prefBiblioAddsAuthorities => $prefBiblioAddsAuthorities, + prefAllowManualAuthorityEditing => $prefAllowManualAuthorityEditing, prefAutoCreateAuthorities => $prefAutoCreateAuthorities, - warnPrefBiblioAddsAuthorities => $warnPrefBiblioAddsAuthorities, + warnPrefAllowManualAuthorityEditing => $warnPrefAllowManualAuthorityEditing, warnPrefEasyAnalyticalRecords => $warnPrefEasyAnalyticalRecords, warnPrefAnonymousPatronOPACPrivacy => $warnPrefAnonymousPatronOPACPrivacy, warnPrefAnonymousPatronAnonSuggestions => $warnPrefAnonymousPatronAnonSuggestions, --- a/cataloguing/addbiblio.pl +++ a/cataloguing/addbiblio.pl @@ -376,7 +376,7 @@ sub create_input { } elsif ( $tagslib->{$tag}->{$subfield}->{authtypecode} ) { # when authorities auto-creation is allowed, do not set readonly - my $is_readonly = !C4::Context->preference("BiblioAddsAuthorities"); + my $is_readonly = !C4::Context->preference("AllowManualAuthorityEditing"); $subfield_data{marc_value} = { type => 'text', --- a/installer/data/mysql/mandatory/sysprefs.sql +++ a/installer/data/mysql/mandatory/sysprefs.sql @@ -31,6 +31,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('AllowCheckoutNotes', '0', NULL, 'Allow patrons to submit notes about checked out items.','YesNo'), ('AllowItemsOnHoldCheckoutSIP','0','','Do not generate RESERVED warning when checking out items reserved to someone else via SIP. This allows self checkouts for those items.','YesNo'), ('AllowItemsOnHoldCheckoutSCO','0','','Do not generate RESERVE_WAITING and RESERVED warning in the SCO module when checking out items reserved to someone else. This allows self checkouts for those items.','YesNo'), +('AllowManualAuthorityEditing','0',NULL,'Allow manual entry in controlled fields during cataloging.','YesNo'), ('AllowMultipleCovers','0','1','Allow multiple cover images to be attached to each bibliographic record.','YesNo'), ('AllowMultipleIssuesOnABiblio',1,'Allow/Don\'t allow patrons to check out multiple items from one biblio','','YesNo'), ('AllowNotForLoanOverride','0','','If ON, Koha will allow the librarian to loan a not for loan item.','YesNo'), @@ -80,6 +81,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('AutoShareWithMana','subscription','','defines datas automatically shared with mana','multiple'), ('AutoLocation','0',NULL,'If ON, IP authentication is enabled, blocking access to the staff interface from unauthorized IP addresses','YesNo'), ('AutomaticItemReturn','1',NULL,'If ON, Koha will automatically set up a transfer of this item to its homebranch','YesNo'), +('AutoLinkBiblios','0',NULL,'If enabled, link biblio to authorities on creation and edit','YesNo'), ('autoMemberNum','0','','If ON, patron number is auto-calculated','YesNo'), ('AutoRemoveOverduesRestrictions','0',NULL,'Defines whether an OVERDUES debarment should be lifted automatically if all overdue items are returned by the patron.','YesNo'), ('AutoRenewalNotices','cron','cron|preferences|never','How should Koha determine whether to end autorenewal notices','Choice'), @@ -100,7 +102,6 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('BasketConfirmations','1','always ask for confirmation.|do not ask for confirmation.','When closing or reopening a basket,','Choice'), ('BatchCheckouts','0','','Enable or disable batch checkouts','YesNo'), ('BatchCheckoutsValidCategories','',NULL,'Patron categories allowed to checkout in a batch','Free'), -('BiblioAddsAuthorities','0',NULL,'If ON, adding a new biblio will check for an existing authority record and create one on the fly if one doesn\'t exist','YesNo'), ('BiblioDefaultView','normal','normal|marc|isbd','Choose the default detail view in the catalog; choose between normal, marc or isbd','Choice'), ('BiblioItemtypeInfo','0','0','Control which itemtype info displays for biblio level itemtypes','YesNo'), ('BibtexExportAdditionalFields', '', NULL , 'Define additional BibTex tags to export from MARC records in YAML format as an associative array with either a marc tag/subfield combination as the value, or a list of tag/subfield combinations.', 'textarea'), --- a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt @@ -216,7 +216,7 @@
- [% IF warnPrefBiblioAddsAuthorities || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || invalid_yesno.count || warnNoActiveCurrency || warnIsRootUser || xml_config_warnings.size || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || has_ai_issues || oauth2_missing_deps || bad_yaml_prefs || warnRelationships || log4perl_errors || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnConnectBroker || elasticsearch_has_missing %] + [% IF warnAllowManualAuthorityEditing || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || invalid_yesno.count || warnNoActiveCurrency || warnIsRootUser || xml_config_warnings.size || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || has_ai_issues || oauth2_missing_deps || bad_yaml_prefs || warnRelationships || log4perl_errors || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnConnectBroker || elasticsearch_has_missing %] [% IF (warnIsRootUser) %]

Warning regarding current user

You are logged in as the database administrative user. This is not recommended because some parts of Koha will not function as expected when using this account.

@@ -300,12 +300,12 @@ Contact your system administrator. [% END %] - [% IF warnPrefBiblioAddsAuthorities || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || invalid_yesno.count || warnNoActiveCurrency || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || warnXSLT || oauth2_missing_deps || bad_yaml_prefs || warnIssuingRules || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size %] + [% IF warnPrefAllowManualAuthorityEditing || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || invalid_yesno.count || warnNoActiveCurrency || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || warnXSLT || oauth2_missing_deps || bad_yaml_prefs || warnIssuingRules || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size %]

Warnings regarding the system configuration

- [% IF (warnPrefBiblioAddsAuthorities) %] - + [% IF (warnPrefAllowManualAuthorityEditing) %] + [% END %] [% IF (warnPrefEasyAnalyticalRecords) %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/authorities.pref +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/authorities.pref @@ -16,12 +16,12 @@ Authorities: type: textarea - - When editing records, - - pref: BiblioAddsAuthorities + - pref: AllowManualAuthorityEditing default: no choices: 1: allow 0: "don't allow" - - them to automatically create new authority records if needed, rather than having to reference existing authorities. + - catalogers to manually create new headings if needed, rather than having to reference existing authorities. - - When editing records, - pref: AutoCreateAuthorities @@ -29,7 +29,7 @@ Authorities: choices: 1: generate 0: "don't generate" - - authority records that are missing (BiblioAddsAuthorities must be set to "allow" for this to have any effect). + - authority records that are missing (AllowManualAuthorityEditing must be set to "allow" for this to have any effect). - - When modifying an authority record, do not update attached bibliographic records if the number exceeds - pref: AuthorityMergeLimit @@ -64,13 +64,13 @@ Authorities: "strict": strict - mode. In strict mode subfields that are not found in the authority record, are deleted. Loose mode will keep them. Loose mode is the historical behavior and still the default. - - - "Use the following text as default value for the 667$a field of MARC21 authority records (requires BiblioAddsAuthorities and AutoCreateAuthorities):" + - "Use the following text as default value for the 667$a field of MARC21 authority records (requires AllowManualAuthorityEditing and AutoCreateAuthorities):" - pref: GenerateAuthorityField667 default: "Machine generated authority record" type: textarea class: code - - - "Use the following text as default value for the 670$a field of MARC21 authority records (requires BiblioAddsAuthorities and AutoCreateAuthorities):" + - "Use the following text as default value for the 670$a field of MARC21 authority records (requires AllowManualAuthorityEditing and AutoCreateAuthorities):" - pref: GenerateAuthorityField670 default: "Work cat." type: textarea @@ -111,4 +111,11 @@ Authorities: choices: 1: Do 0: "Don't" - - automatically relink headings that have previously been linked when saving records in the cataloging module. + - automatically relink headings that have previously been linked when saving records in the cataloging module (requires AutoLinkBiblios). + - + - pref: AutoLinkBiblios + default: no + choices: + 1: Do + 0: "Don't" + - attempt to automatically link headings when saving records in the cataloging module, obeys LinkerRelink and CatalogModuleRelink for record edits. --- a/t/db_dependent/Biblio.t +++ a/t/db_dependent/Biblio.t @@ -68,7 +68,7 @@ subtest 'AddBiblio' => sub { is( Koha::Biblios->count, $nb_biblios, 'No biblio should have been added if something went wrong' ); - t::lib::Mocks::mock_preference( 'BiblioAddsAuthorities', $marcflavour ); + t::lib::Mocks::mock_preference( 'AutoLinkBiblios', $marcflavour ); t::lib::Mocks::mock_preference( 'AutoCreateAuthorities', $marcflavour ); my $mock_biblio = Test::MockModule->new("C4::Biblio"); @@ -170,7 +170,7 @@ subtest "Authority creation with default linker" => sub { plan tests => 4; # Automatic authority creation t::lib::Mocks::mock_preference('LinkerModule', 'Default'); - t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 1); + t::lib::Mocks::mock_preference('AutoLinkBiblios', 1); t::lib::Mocks::mock_preference('AutoCreateAuthorities', 1); t::lib::Mocks::mock_preference('marcflavour', 'MARC21'); my $linker = C4::Linker::Default->new({}); @@ -447,7 +447,7 @@ sub run_tests { 'GetMarcUrls prefixed a MARC21 URL with http://' ); # Automatic authority creation - t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 1); + t::lib::Mocks::mock_preference('AutoLinkBiblios', 1); t::lib::Mocks::mock_preference('AutoCreateAuthorities', 1); my $authorities_mod = Test::MockModule->new( 'C4::Heading' ); $authorities_mod->mock( @@ -491,7 +491,7 @@ sub run_tests { is($field->subfield($author_relator_subfield), undef, 'Authority does not contain relator subfield'); # Reset settings - t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 0); + t::lib::Mocks::mock_preference('AutoLinkBiblios', 0); t::lib::Mocks::mock_preference('AutoCreateAuthorities', 0); } @@ -726,7 +726,7 @@ subtest 'MarcFieldForCreatorAndModifier' => sub { subtest 'ModBiblio called from linker test' => sub { plan tests => 2; my $called = 0; - t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 1); + t::lib::Mocks::mock_preference('AutoLinkBiblios', 1); my $biblio_mod = Test::MockModule->new( 'C4::Biblio' ); $biblio_mod->mock( 'LinkBibHeadingsToAuthorities', sub { $called = 1; --- a/t/db_dependent/Koha/SearchEngine/Indexer.t +++ a/t/db_dependent/Koha/SearchEngine/Indexer.t @@ -70,7 +70,7 @@ subtest 'Test indexer calls' => sub { if scalar @engines == 1; } - t::lib::Mocks::mock_preference( 'BiblioAddsAuthorities', 0 ); + t::lib::Mocks::mock_preference( 'AutoLinkBiblios', 0 ); for my $engine ( @engines ){ t::lib::Mocks::mock_preference( 'SearchEngine', $engine ); --
Preferences and parameters
Warning System preference 'AutoCreateAuthorities' set, but needs 'BiblioAddsAuthorities' set as well.
Warning System preference 'AutoCreateAuthorities' set, but needs 'AllowManualAuthorityEditing' set as well. Otherwise catalogers can add headings that will not be linked to authorities.
Warning System preference 'EasyAnalyticalRecords' set, but UseControlNumber preference is set to 'Use'. Set it to 'Don't use' or else the 'Show analytics' links in the staff interface and the OPAC will be broken.