Bugzilla – Attachment 160151 Details for
Bug 29440
Refactor/clean up bulkmarcimport.pl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 29440: defer biblio autolinking until records are indexed
file_29440.txt (text/plain), 4.24 KB, created by
Michał
on 2023-12-20 18:27:16 UTC
(
hide
)
Description:
Bug 29440: defer biblio autolinking until records are indexed
Filename:
MIME Type:
Creator:
Michał
Created:
2023-12-20 18:27:16 UTC
Size:
4.24 KB
patch
obsolete
>From 031224d44e4b2849360e148e130f522563fc9b26 Mon Sep 17 00:00:00 2001 >From: David Gustafsson <david.gustafsson@ub.gu.se> >Date: Wed, 21 Sep 2022 17:43:32 +0200 >Subject: [PATCH] Bug 29440: defer biblio autolinking until records are indexed > >Signed-off-by: =?UTF-8?q?Micha=C5=82=20Kula?= > <148193449+mkibp@users.noreply.github.com> >--- > C4/Biblio.pm | 16 +++++++++++++--- > misc/migration_tools/bulkmarcimport.pl | 9 ++++++++- > 2 files changed, 21 insertions(+), 4 deletions(-) > >diff --git a/C4/Biblio.pm b/C4/Biblio.pm >index 2f80c973819..52decadac7e 100644 >--- a/C4/Biblio.pm >+++ b/C4/Biblio.pm >@@ -189,9 +189,17 @@ The C<$options> argument is a hashref with additional parameters: > > =over 4 > >-=item B<defer_marc_save>: used when ModBiblioMarc is handled by the caller >+=item B<defer_marc_save> >+Used when ModBiblioMarc is handled by the caller > >-=item B<skip_record_index>: used when the indexing scheduling will be handled by the caller >+=item B<skip_record_index> >+Used when the indexing scheduling will be handled by the caller >+ >+=item C<disable_autolink> >+ >+Unless C<disable_autolink> is passed AddBiblio will link record headings >+to authorities based on settings in the system preferences. This flag allows >+us to not link records when the authority linker is saving modifications. > > =back > >@@ -203,6 +211,7 @@ sub AddBiblio { > $options //= {}; > my $skip_record_index = $options->{'skip_record_index'} // 0; > my $defer_marc_save = $options->{defer_marc_save} // 0; >+ my $disable_autolink = $options->{disable_autolink} // 0; > > if (!$record) { > carp('AddBiblio called with undefined record'); >@@ -283,7 +292,7 @@ sub AddBiblio { > # update MARC subfield that stores biblioitems.cn_sort > _koha_marc_update_biblioitem_cn_sort( $record, $olddata, $frameworkcode ); > >- if (C4::Context->preference('AutoLinkBiblios')) { >+ if (!$disable_autolink && C4::Context->preference('BiblioAddsAuthorities')) { > BiblioAutoLink( $record, $frameworkcode ); > } > >@@ -578,6 +587,7 @@ sub BiblioAutoLink { > my $record = shift; > my $frameworkcode = shift; > my $verbose = shift; >+ > if (!$record) { > carp('Undefined record passed to BiblioAutoLink'); > return 0; >diff --git a/misc/migration_tools/bulkmarcimport.pl b/misc/migration_tools/bulkmarcimport.pl >index b9e961c9115..dc2374c6a71 100755 >--- a/misc/migration_tools/bulkmarcimport.pl >+++ b/misc/migration_tools/bulkmarcimport.pl >@@ -19,6 +19,7 @@ use C4::Biblio qw( > ModBiblioMarc > GetFrameworkCode > GetMarcBiblio >+ BiblioAutoLink > ); > use C4::Koha; > use C4::Charset qw( MarcToUTF8Record SetUTF8Flag ); >@@ -125,6 +126,7 @@ if ($all) { > > my $using_elastic_search = (C4::Context->preference('SearchEngine') eq 'Elasticsearch'); > my $modify_biblio_marc_options = { >+ disable_autolink => $using_elastic_search, > defer_search_engine_indexing => $using_elastic_search, > overlay_context => { source => 'bulkmarcimport' } > }; >@@ -541,7 +543,7 @@ RECORD: foreach my $record (@{$marc_records}) { > } > } > elsif ($insert) { >- eval { ($record_id, $biblioitemnumber) = AddBiblio($record, $framework, { defer_marc_save => 1 }) }; >+ eval { ($record_id, $biblioitemnumber) = AddBiblio($record, $framework, { disable_autolink => 1, defer_marc_save => 1 }) }; > if ($@) { > warn "ERROR: Insert biblio $originalid failed: $@\n"; > printlog( { id => $originalid, op => "insert", status => "ERROR" } ) if ($logfile); >@@ -645,6 +647,11 @@ RECORD: foreach my $record (@{$marc_records}) { > $schema->txn_begin; > if ($indexer) { > $indexer->update_index(\@search_engine_record_ids, \@search_engine_records); >+ if (C4::Context->preference('BiblioAddsAuthorities')) { >+ foreach my $record (@search_engine_records) { >+ BiblioAutoLink($record, $framework); >+ } >+ } > @search_engine_record_ids = (); > @search_engine_records = (); > } >-- >2.40.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 29440
:
127479
|
127480
|
127481
|
127485
|
127486
|
127508
|
127509
|
127651
|
127652
|
127791
|
127792
|
127795
|
127796
|
127959
|
127960
|
127961
|
127963
|
128086
|
128087
|
128362
|
128890
|
128891
|
131176
|
131177
|
131180
|
131181
|
132942
|
140822
|
140823
|
140903
|
140904
|
140905
|
140906
|
140924
|
140925
|
140926
|
140927
|
140928
|
140987
|
140988
|
140989
|
143375
|
151293
|
151294
|
151295
|
151296
|
151297
|
151298
|
151299
|
151300
|
151301
|
157798
|
160148
|
160149
|
160150
|
160151
|
160152
|
160153
|
160154
|
160155
|
160156
|
160157
|
160477
|
160478
|
160479
|
160480
|
160481
|
160482
|
160483
|
160484
|
160485
|
160486
|
160487