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 <scott@masslibsystem.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit 008920eaeb)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
bf354d10cc
commit
9f6ce85bca
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ $(document).ready(function() {
|
|||
</li>
|
||||
|
||||
<li>
|
||||
<label>Library: </label>
|
||||
<label>With items owned by the following libraries: </label>
|
||||
[% INCLUDE 'branch-selector.inc' branches = libraries %]
|
||||
</li>
|
||||
</ol>
|
||||
|
|
@ -146,8 +146,8 @@ $(document).ready(function() {
|
|||
<input id="dont_export_item" type="checkbox" name="dont_export_item" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="strip_nonlocal_items">Remove non-local items:</label>
|
||||
<input id="strip_nonlocal_items" type="checkbox" name="strip_nonlocal_items" />
|
||||
<label for="strip_items_not_from_libraries">Remove items not owned by selected libraries:</label>
|
||||
<input id="strip_items_not_from_libraries" type="checkbox" name="strip_items_not_from_libraries" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="export_remove_fields">Don't export fields:</label>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue