From 9f6ce85bcaac4fd8ee1182f42834389464e55f9c Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Thu, 13 Apr 2017 10:21:50 -0400 Subject: [PATCH] Bug 18201: Export data -Fix "Remove non-local items" option and add "Removes non-local records" option for existing functionality It turns out the modules had the option expected built in, we just didn't call it. This patch set expands the options for passing to the export. To test: 1 - Go to Tools->Export data 2 - Perform an export and check 'Remove non-local items' 3 - Note that file contains only 'local' records, but includes all items on those records 4 - Apply patch 5 - Note Tools->Export data has a new option to remove records not owned by logged in branch 6 - Export as before checking records option, file should be as before 7 - Now check 'Remove items not owned by logged in branch' 8 - File should now only have local items (may have empty records) 9 - Check both boxes and recieve only 'local' records and items Signed-off-by: Scott Kehoe Signed-off-by: Kyle M Hall Signed-off-by: Jonathan Druart Signed-off-by: Nick Clemens (cherry picked from commit 008920eaeb77ffbabece855682e157936bb89c8b) Signed-off-by: Fridolin Somers --- Koha/Exporter/Record.pm | 7 ++++--- koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt | 6 +++--- tools/export.pl | 8 ++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Koha/Exporter/Record.pm b/Koha/Exporter/Record.pm index 193f87e988..aff8423cc1 100644 --- a/Koha/Exporter/Record.pm +++ b/Koha/Exporter/Record.pm @@ -63,7 +63,7 @@ sub _get_biblio_for_export { my $biblionumber = $params->{biblionumber}; my $itemnumbers = $params->{itemnumbers}; my $export_items = $params->{export_items} // 1; - my $only_export_items_for_branch = $params->{only_export_items_for_branch}; + my $only_export_items_for_branches = $params->{only_export_items_for_branches}; my $record = eval { C4::Biblio::GetMarcBiblio($biblionumber); }; @@ -71,12 +71,13 @@ sub _get_biblio_for_export { if ($export_items) { C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber, $itemnumbers ); - if ($only_export_items_for_branch) { + if ($only_export_items_for_branches && @$only_export_items_for_branches) { + my %export_items_for_branches = map { $_ => 1 } @$only_export_items_for_branches; my ( $homebranchfield, $homebranchsubfield ) = GetMarcFromKohaField( 'items.homebranch', '' ); # Should be GetFrameworkCode( $biblionumber )? for my $itemfield ( $record->field($homebranchfield) ) { my $homebranch = $itemfield->subfield($homebranchsubfield); - if ( $only_export_items_for_branch ne $homebranch ) { + unless ( $export_items_for_branches{$homebranch} ) { $record->delete_field($itemfield); } } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt index 19224f486d..90f8a4dfb9 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt @@ -96,7 +96,7 @@ $(document).ready(function() {
  • - + [% INCLUDE 'branch-selector.inc' branches = libraries %]
  • @@ -146,8 +146,8 @@ $(document).ready(function() {
  • - - + +
  • diff --git a/tools/export.pl b/tools/export.pl index 208d7f4d78..70ad72c74a 100755 --- a/tools/export.pl +++ b/tools/export.pl @@ -87,13 +87,12 @@ if ( $op eq "export" ) { my $export_remove_fields = $query->param("export_remove_fields") || q||; my @biblionumbers = $query->multi_param("biblionumbers"); my @itemnumbers = $query->multi_param("itemnumbers"); - my $strip_nonlocal_items = $query->param('strip_nonlocal_items'); + my $strip_items_not_from_libraries = $query->param('strip_items_not_from_libraries'); my @sql_params; my $sql_query; - my $libraries = $strip_nonlocal_items - ? [ Koha::Libraries->find(C4::Context->userenv->{branch})->unblessed ] - : Koha::Libraries->search_filtered->unblessed; + my $libraries = Koha::Libraries->search_filtered->unblessed; + my $only_export_items_for_branches = $strip_items_not_from_libraries ? \@branch : undef; my @branchcodes; for my $branchcode ( @branch ) { if ( grep { $_->{branchcode} eq $branchcode } @$libraries ) { @@ -209,6 +208,7 @@ if ( $op eq "export" ) { dont_export_fields => $export_remove_fields, csv_profile_id => $csv_profile_id, export_items => (not $dont_export_items), + only_export_items_for_branches => $only_export_items_for_branches, } ); } -- 2.39.5