From 63802c7ec270d63bd5d3b5c06eaf8828c4b798e1 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 30 Dec 2015 18:23:24 +0000 Subject: [PATCH] Bug 15451: Koha::CsvProfiles - Remove GetCsvProfileId This subroutine returned the export_format_id for a given profile name. This can be done easily with the Koha::CsvProfiles->search method. Test plan: Export records using the misc/export_records.pl script and the export tool. If you are exporting using the MARC format, the profile filled in the pref ExportWithCsvProfile will be used (or the one passed in parameter of misc/export_records.pl). If you are exporting using the CSV format, you can choose a profile in the dropdown list. Signed-off-by: Bernardo Gonzalez Kriegel Exported using tool & cmd, marc & csv. Pref is used. No errors Signed-off-by: Marcel de Rooy Signed-off-by: Mason James --- C4/Csv.pm | 13 ------------- Koha/Exporter/Record.pm | 4 ++-- misc/export_records.pl | 7 ++++++- tools/export.pl | 10 ++++++++-- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/C4/Csv.pm b/C4/Csv.pm index 7c8f8249f3..cc88c01ba0 100644 --- a/C4/Csv.pm +++ b/C4/Csv.pm @@ -32,7 +32,6 @@ use vars qw(@ISA @EXPORT); @EXPORT = qw( &GetCsvProfile - &GetCsvProfileId &GetMarcFieldsForCsv ); @@ -49,18 +48,6 @@ sub GetCsvProfile { return ($sth->fetchrow_hashref); } -# Returns id of csv profile about a given csv profile name -sub GetCsvProfileId { - my ($name) = @_; - my $dbh = C4::Context->dbh; - my $query = "SELECT export_format_id FROM export_format WHERE profile=?"; - - $sth = $dbh->prepare($query); - $sth->execute($name); - - return ( $sth->fetchrow ); -} - # Returns fields to extract for the given csv profile sub GetMarcFieldsForCsv { diff --git a/Koha/Exporter/Record.pm b/Koha/Exporter/Record.pm index 0508660f86..d64312c5ce 100644 --- a/Koha/Exporter/Record.pm +++ b/Koha/Exporter/Record.pm @@ -7,7 +7,7 @@ use MARC::File::USMARC; use C4::AuthoritiesMarc; use C4::Biblio; use C4::Record; -use Koha::Logger; +use Koha::CsvProfiles; sub _get_record_for_export { my ($params) = @_; @@ -142,7 +142,7 @@ sub export { print MARC::File::XML::footer(); print "\n"; } elsif ( $format eq 'csv' ) { - $csv_profile_id ||= C4::Csv::GetCsvProfileId( C4::Context->preference('ExportWithCsvProfile') ); + $csv_profile_id ||= Koha::CsvProfiles->search({ profile => C4::Context->preference('ExportWithCsvProfile') })->export_format_id; print marc2csv( $record_ids, $csv_profile_id, $itemnumbers ); } diff --git a/misc/export_records.pl b/misc/export_records.pl index a873f020d6..62b9261591 100755 --- a/misc/export_records.pl +++ b/misc/export_records.pl @@ -29,6 +29,7 @@ use C4::Record; use Koha::Biblioitems; use Koha::Database; +use Koha::CsvProfiles; use Koha::Exporter::Record; use Koha::DateUtils qw( dt_from_string output_pref ); @@ -193,11 +194,15 @@ if ($deleted_barcodes) { } } else { + unless ( $csv_profile_id ) { + my $default_csv_profile = Koha::CsvProfiles->search({ profile => C4::Context->preference('ExportWithCsvProfile') }); + $csv_profile_id = $default_csv_profile ? $default_csv_profile->export_format_id : undef; + } Koha::Exporter::Record::export( { record_type => $record_type, record_ids => \@record_ids, format => $output_format, - csv_profile_id => ( $csv_profile_id || GetCsvProfileId( C4::Context->preference('ExportWithCsvProfile') ) || undef ), + csv_profile_id => $csv_profile_id, export_items => (not $dont_export_items), clean => $clean || 0, } diff --git a/tools/export.pl b/tools/export.pl index 4e873e4627..aca0bd27bc 100755 --- a/tools/export.pl +++ b/tools/export.pl @@ -193,6 +193,12 @@ if ( $op eq "export" ) { -attachment => $filename, ); + my $csv_profile_id = $query->param('csv_profile_id'); + unless ( $csv_profile_id ) { + my $default_csv_profile = Koha::CsvProfiles->search({ profile => C4::Context->preference('ExportWithCsvProfile') }); + $csv_profile_id = $default_csv_profile ? $default_csv_profile->export_format_id : undef; + } + Koha::Exporter::Record::export( { record_type => $record_type, record_ids => \@record_ids, @@ -200,7 +206,7 @@ if ( $op eq "export" ) { filename => $filename, itemnumbers => \@itemnumbers, dont_export_fields => $export_remove_fields, - csv_profile_id => ( $query->param('csv_profile_id') || GetCsvProfileId( C4::Context->preference('ExportWithCsvProfile') ) || undef ), + csv_profile_id => $csv_profile_id, export_items => (not $dont_export_items), } ); @@ -310,7 +316,7 @@ else { itemtypeloop => \@itemtypesloop, authority_types => $authority_types, export_remove_fields => C4::Context->preference("ExportRemoveFields"), - csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }), + csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ], ); output_html_with_http_headers $query, $cookie, $template->output; -- 2.39.5