From 0946cd331632eee058d33e00431ae4bf739f448c Mon Sep 17 00:00:00 2001 From: David Gustafsson Date: Mon, 4 Apr 2022 15:08:43 +0200 Subject: [PATCH] Bug 20551: Fetch deleted biblios through _get_record_export --- Koha/Exporter/Record.pm | 27 +++++++++++++++------------ misc/export_records.pl | 5 ++++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Koha/Exporter/Record.pm b/Koha/Exporter/Record.pm index 55f74fd540..05097b2017 100644 --- a/Koha/Exporter/Record.pm +++ b/Koha/Exporter/Record.pm @@ -29,11 +29,13 @@ sub _get_record_for_export { $record = _get_authority_for_export( { %$params, authid => $record_id } ); } elsif ( $record_type eq 'bibs' ) { $record = _get_biblio_for_export( { %$params, biblionumber => $record_id } ); + } elsif ( $record_type eq 'deleted_bibs' ) { + $record = _get_deleted_biblio_for_export( { %$params, biblionumber => $record_id } ); } else { - Koha::Logger->get->warn( "Record_type $record_type not supported." ); + Koha::Logger->get->warn( "Record type $record_type not supported." ); } if ( !$record ) { - Koha::Logger->get->warn( "Record $record_id could not be exported." ); + Koha::Logger->get->warn( "Record $record_id with record type $record_type could not be exported." ); return; } @@ -115,8 +117,7 @@ sub _get_deleted_biblio_for_export { my $biblionumber = $params->{biblionumber}; # Creating schema is expensive, allow caller to # pass it so don't have to recreate for each call - my $resultset = $params->{resultset} || Koha::Database - ->new() + my $resultset = $params->{resultset} || Koha::Database->new() ->schema() ->resultset('DeletedbiblioMetadata'); my $marc_flavour = C4::Context->preference('marcflavour'); @@ -205,7 +206,7 @@ sub export { Koha::Logger->get->warn( "No record_type given." ); return; } - return unless (@{$record_ids} || @{$deleted_record_ids} && $format ne 'csv'); + return unless @{$record_ids} || @{$deleted_record_ids} && $format ne 'csv'; my $fh; if ( $output_filepath ) { @@ -225,14 +226,16 @@ sub export { my @deleted_records; if (@{$deleted_record_ids}) { - my $resultset = Koha::Database - ->new() - ->schema() - ->resultset('DeletedbiblioMetadata'); + my $resultset = Koha::Database->new() + ->schema() + ->resultset('DeletedbiblioMetadata'); + @deleted_records = map { - my $record = _get_deleted_biblio_for_export({ - biblionumber => $_, - resultset => $resultset, + my $record = _get_record_for_export({ + %{$params}, + record_type => 'deleted_bibs', + record_id => $_, + resultset => $resultset }); $record ? $record : (); } @{$deleted_record_ids}; diff --git a/misc/export_records.pl b/misc/export_records.pl index 39a2a35bbf..035a31862c 100755 --- a/misc/export_records.pl +++ b/misc/export_records.pl @@ -97,12 +97,15 @@ $record_type ||= 'bibs'; $output_format = 'iso2709' if $output_format eq 'marc'; if ($include_deleted || $deleted_only) { - if ($record_type ne 'bibs') { + if ($record_type ne 'bibs') { pod2usage(q|Option "--include_deleted" or "--deleted_only" can only be used with "--record-type=bibs"|); } if ($output_format eq 'csv') { pod2usage(q|Option "--include_deleted" or "--deleted_only" cannot be used with "--format=csv"|); } + if (!$timestamp) { + pod2usage(q|Option "--include_deleted" or "--deleted_only" must be combined with "--date"|); + } } if ( $output_format eq 'csv' and $record_type eq 'auths' ) { -- 2.35.1