Bugzilla – Attachment 140857 Details for
Bug 15869
Change framework on overlay
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 15869: Change framework on overlay
Bug-15869-Change-framework-on-overlay.patch (text/plain), 8.96 KB, created by
Nick Clemens (kidclamp)
on 2022-09-22 19:15:57 UTC
(
hide
)
Description:
Bug 15869: Change framework on overlay
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2022-09-22 19:15:57 UTC
Size:
8.96 KB
patch
obsolete
>From b7f740044a5603de82f037c1a22af9ac1f8613c5 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Tue, 13 Sep 2016 15:23:50 +0000 >Subject: [PATCH] Bug 15869: Change framework on overlay > >This patch allows for selection of framework to use when overlaying >records - by default it is set to keep the initial framework > >To test: > 1 - Create some records using one framework > 2 - Export the records > 3 - Edit the records to add fields not in original framework > 4 - Stage records using a rule that will find matches > 5 - Import > 6 - Note records contain new fields on display, but they are lost on edit > 7 - Apply patch > 8 - Stage records again > 9 - Select a framework that contains the new fields on import >10 - Import records >11 - Note records now use selected framework and are displayed/edited >correctly >--- > C4/ImportBatch.pm | 24 +++++++++++++++---- > Koha/BackgroundJob/MARCImportCommitBatch.pm | 15 ++++++++---- > .../en/modules/tools/manage-marc-import.tt | 9 +++++++ > misc/commit_file.pl | 7 +++++- > misc/cronjobs/import_webservice_batch.pl | 5 +++- > svc/import_bib | 5 +++- > tools/manage-marc-import.pl | 4 +++- > 7 files changed, 55 insertions(+), 14 deletions(-) > >diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm >index 905a44aa62..0956ef5f6b 100644 >--- a/C4/ImportBatch.pm >+++ b/C4/ImportBatch.pm >@@ -509,16 +509,30 @@ sub BatchFindDuplicates { > > =head2 BatchCommitRecords > >- my ($num_added, $num_updated, $num_items_added, $num_items_replaced, $num_items_errored, $num_ignored) = >- BatchCommitRecords( $batch_id, $framework, $progress_interval, $progress_callback, $params ); >+ Takes a hashref containing params for committing the batch - optional parameters 'progress_interval' and >+ 'progress_callback' will define code called every X records. >+ >+ my ($num_added, $num_updated, $num_items_added, $num_items_replaced, $num_items_errored, $num_ignored) = >+ BatchCommitRecords({ >+ batch_id => $batch_id, >+ framework => $framework, >+ overlay_framework => $overlay_framework, >+ progress_interval => $progress_interval, >+ progress_callback => $progress_callback, >+ skip_intermediate_commit => $skip_intermediate_commit >+ }); > > Parameter skip_intermediate_commit does what is says. >- > =cut > > sub BatchCommitRecords { >- my ( $batch_id, $framework, $progress_interval, $progress_callback, $params ) = @_; >+ my $params = shift; >+ my $batch_id = $params->{batch_id}; >+ my $framework = $params->{framework}; >+ my $overlay_framework = $params->{overlay_framework}; > my $skip_intermediate_commit = $params->{skip_intermediate_commit}; >+ my $progress_interval = $params->{progress_interval} // 0; >+ my $progress_callback = $params->{progress_callback}; > $progress_interval = 0 unless $progress_interval && $progress_interval =~ /^\d+$/; > $progress_interval = 0 unless ref($progress_callback) eq 'CODE'; > >@@ -646,7 +660,7 @@ sub BatchCommitRecords { > ModBiblio( > $marc_record, > $recordid, >- $oldbiblio->frameworkcode, >+ $overlay_framework // $oldbiblio->frameworkcode, > { > overlay_context => $context, > skip_record_index => 1 >diff --git a/Koha/BackgroundJob/MARCImportCommitBatch.pm b/Koha/BackgroundJob/MARCImportCommitBatch.pm >index c2090617d1..e9b2ed3554 100644 >--- a/Koha/BackgroundJob/MARCImportCommitBatch.pm >+++ b/Koha/BackgroundJob/MARCImportCommitBatch.pm >@@ -59,6 +59,7 @@ sub process { > > my $import_batch_id = $args->{import_batch_id}; > my $frameworkcode = $args->{frameworkcode}; >+ my $overlay_frameworkcode = $args->{overlay_framework}; > > my @messages; > my $job_progress = 0; >@@ -70,11 +71,15 @@ sub process { > $self->size($size)->store; > ( $num_added, $num_updated, $num_items_added, > $num_items_replaced, $num_items_errored, $num_ignored ) = >- BatchCommitRecords( >- $import_batch_id, $frameworkcode, 50, >- sub { my $job_progress = shift; $self->progress( $job_progress )->store }, >- { skip_intermediate_commit => 1 }, >- ); >+ BatchCommitRecords({ >+ batch_id => $import_batch_id, >+ framework => $frameworkcode, >+ overlay_framework => $overlay_frameworkcode, >+ progress_interval => 50, >+ progress_callback => >+ sub { my $job_progress = shift; $self->progress( $job_progress )->store }, >+ skip_intermediate_commit => 1, >+ }); > my $count = $num_added + $num_updated; > if( $count ) { > $self->set({ progress => $count, size => $count }); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >index 85e34fb091..3d77c7c12c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >@@ -271,6 +271,15 @@ > <option value="[% framework.frameworkcode | html %]">[% framework.frameworktext | html %]</option> > [% END %] > </select> >+ <br/> >+ When replacing records use this framework: >+ <select name="overlay_framework" id="overlay_frameworks"> >+ <option value="_USE_ORIG_">Keep original framework</option> >+ <option value="">Default</option> >+ [% FOREACH framework IN frameworks %] >+ <option value="[% framework.frameworkcode | html %]">[% framework.frameworktext | html %]</option> >+ [% END %] >+ </select> > [% END %] > <br /> > <input type="submit" class="button" name="mainformsubmit" value="Import this batch into the catalog" /> >diff --git a/misc/commit_file.pl b/misc/commit_file.pl >index d18dda68c4..36a294cc2b 100755 >--- a/misc/commit_file.pl >+++ b/misc/commit_file.pl >@@ -83,7 +83,12 @@ sub process_batch { > > print "... importing MARC records -- please wait\n"; > my ($num_added, $num_updated, $num_items_added, $num_items_replaced, $num_items_errored, $num_ignored) = >- BatchCommitRecords($import_batch_id, $framework, 100, \&print_progress); >+ BatchCommitRecords({ >+ batch_id => $import_batch_id, >+ framework => $framework, >+ progress_interval => 100, >+ progress_callback => \&print_progress >+ }); > print "... finished importing MARC records\n"; > > print <<_SUMMARY_; >diff --git a/misc/cronjobs/import_webservice_batch.pl b/misc/cronjobs/import_webservice_batch.pl >index ae9aa8614c..d5dcdc78f7 100755 >--- a/misc/cronjobs/import_webservice_batch.pl >+++ b/misc/cronjobs/import_webservice_batch.pl >@@ -46,4 +46,7 @@ EOF > my $batch_ids = GetStagedWebserviceBatches() or exit; > > $framework ||= ''; >-BatchCommitRecords($_, $framework) foreach @$batch_ids; >+BatchCommitRecords({ >+ batch_id => $_, >+ framework => $framework >+}) foreach @$batch_ids; >diff --git a/svc/import_bib b/svc/import_bib >index f1119b4543..d5727e6589 100755 >--- a/svc/import_bib >+++ b/svc/import_bib >@@ -92,7 +92,10 @@ sub import_bib { > my $number_of_matches = BatchFindDuplicates($batch_id, $matcher); > > # XXX we are ignoring the result of this; >- BatchCommitRecords($batch_id, $framework) if lc($import_mode) eq 'direct'; >+ BatchCommitRecords({ >+ batch_id => $batch_id, >+ framework => $framework >+ }) if lc($import_mode) eq 'direct'; > > my $dbh = C4::Context->dbh(); > my $sth = $dbh->prepare("SELECT matched_biblionumber FROM import_biblios WHERE import_record_id =?"); >diff --git a/tools/manage-marc-import.pl b/tools/manage-marc-import.pl >index 9c25ec08f2..af94ab2a16 100755 >--- a/tools/manage-marc-import.pl >+++ b/tools/manage-marc-import.pl >@@ -89,11 +89,13 @@ if ($op eq "") { > } > } elsif ($op eq "commit-batch") { > my $frameworkcode = $input->param('framework'); >+ my $overlay_framework = $input->param('overlay_framework'); > try { > my $job_id = Koha::BackgroundJob::MARCImportCommitBatch->new->enqueue( > { > import_batch_id => $import_batch_id, >- frameworkcode => $frameworkcode >+ frameworkcode => $frameworkcode, >+ overlay_framework => $overlay_framework > } > ); > if ($job_id) { >-- >2.30.2
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 15869
:
55543
|
70800
|
77018
|
140857
|
140858
|
142257
|
142258
|
143033
|
145271
|
145272
|
145273
|
145274
|
145406