From 7f309dd656d5e35898cb6483e289d7d81e27648a Mon Sep 17 00:00:00 2001 From: Josef Moravec Date: Mon, 20 Mar 2017 11:12:54 +0000 Subject: [PATCH] Bug 8612: QA followup - make usage and type different columns in db --- acqui/basket.pl | 2 +- basket/basket.pl | 2 +- basket/downloadcart.pl | 2 +- installer/data/mysql/atomicupdate/bug_8612.sql | 5 ++- installer/data/mysql/kohastructure.sql | 1 + .../prog/en/modules/tools/csv-profiles.tt | 41 +++++++++++++++++++--- opac/opac-downloadcart.pl | 2 +- opac/opac-downloadshelf.pl | 2 +- serials/claims.pl | 2 +- t/db_dependent/Koha/CsvProfiles.t | 5 +-- tools/csv-profiles.pl | 6 ++++ tools/export.pl | 2 +- virtualshelves/downloadshelf.pl | 2 +- virtualshelves/shelves.pl | 2 +- 14 files changed, 60 insertions(+), 16 deletions(-) diff --git a/acqui/basket.pl b/acqui/basket.pl index 779d64b..244e471 100755 --- a/acqui/basket.pl +++ b/acqui/basket.pl @@ -431,7 +431,7 @@ if ( $op eq 'list' ) { unclosable => @orders ? $basket->{is_standing} : 1, has_budgets => $has_budgets, duplinbatch => $duplinbatch, - csv_profiles => [ Koha::CsvProfiles->search({ type => 'export_basket' }) ], + csv_profiles => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'export_basket' }) ], ); } diff --git a/basket/basket.pl b/basket/basket.pl index 62a37ab..14f661f 100755 --- a/basket/basket.pl +++ b/basket/basket.pl @@ -122,7 +122,7 @@ my $resultsarray = \@results; $template->param( BIBLIO_RESULTS => $resultsarray, - csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ], + csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ], bib_list => $bib_list, ); diff --git a/basket/downloadcart.pl b/basket/downloadcart.pl index f5cec95..278b2c7 100755 --- a/basket/downloadcart.pl +++ b/basket/downloadcart.pl @@ -90,7 +90,7 @@ if ($bib_list && $format) { print $output; } else { - $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ]); + $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ]); $template->param(bib_list => $bib_list); output_html_with_http_headers $query, $cookie, $template->output; } diff --git a/installer/data/mysql/atomicupdate/bug_8612.sql b/installer/data/mysql/atomicupdate/bug_8612.sql index 37a643b..4e0ea01 100644 --- a/installer/data/mysql/atomicupdate/bug_8612.sql +++ b/installer/data/mysql/atomicupdate/bug_8612.sql @@ -1 +1,4 @@ -UPDATE export_format SET type = 'late_issues' WHERE type ='sql'; +ALTER TABLE export_format ADD used_for varchar(255) DEFAULT 'export_records' AFTER type; + +UPDATE export_format SET used_for = 'late_issues' WHERE type = 'sql'; +UPDATE export_format SET used_for = 'export_records' WHERE type = 'marc'; diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 94ef125..78e464d 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -713,6 +713,7 @@ CREATE TABLE `export_format` ( `subfield_separator` varchar(2) NOT NULL, `encoding` varchar(255) NOT NULL, `type` varchar(255) DEFAULT 'marc', + `usage` varchar(255) DEFAULT 'export_records', PRIMARY KEY (`export_format_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Used for CSV export'; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tt index 38d8269..f215b64 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/csv-profiles.tt @@ -102,13 +102,20 @@ function reloadPage(p) { [% END %] [% BLOCK type_description %] - [% IF type_code == 'marc' %] MARC for export records - [% ELSIF type_code == 'late_issues' %] SQL for late serial issues claims - [% ELSIF type_code == 'export_basket' %] SQL for basket export in acquisition + [% IF type_code == 'marc' %] MARC + [% ELSIF type_code == 'sql' %] SQL [% ELSE %] Uknown type [% END %] [% END %] +[% BLOCK used_for_description %] + [% IF used_for_code == 'export_records' %] Export records + [% ELSIF used_for_code == 'late_issues' %] Late serial issues claims + [% ELSIF used_for_code == 'export_basket' %] Basket export in acquisition + [% ELSE %] Uknown usage + [% END %] +[% END %] + [% IF op == 'add_form' %] [% IF csv_profile %]

Modify a CSV profile

@@ -132,7 +139,7 @@ function reloadPage(p) {
  • Required
  • +
  • + + +
  • +
  • + + +
  • @@ -242,6 +273,7 @@ function reloadPage(p) { Content CSV separator CSV type + Usage     @@ -254,6 +286,7 @@ function reloadPage(p) { [% csv_profile.content %] [% csv_profile.csv_separator %] [% PROCESS type_description type_code = csv_profile.type %] + [% PROCESS used_for_description used_for_code = csv_profile.used_for %] Edit Delete diff --git a/opac/opac-downloadcart.pl b/opac/opac-downloadcart.pl index 75ab4a1..d20000e 100755 --- a/opac/opac-downloadcart.pl +++ b/opac/opac-downloadcart.pl @@ -111,7 +111,7 @@ if ($bib_list && $format) { print $output; } else { - $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ]); + $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ]); $template->param(bib_list => $bib_list); output_html_with_http_headers $query, $cookie, $template->output; } diff --git a/opac/opac-downloadshelf.pl b/opac/opac-downloadshelf.pl index 51769c4..b91f3a3 100755 --- a/opac/opac-downloadshelf.pl +++ b/opac/opac-downloadshelf.pl @@ -129,7 +129,7 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) { } else { $template->param(fullpage => 1); } - $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ]); + $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ]); $template->param( shelf => $shelf ); output_html_with_http_headers $query, $cookie, $template->output; } diff --git a/serials/claims.pl b/serials/claims.pl index fbf7743..44cff74 100755 --- a/serials/claims.pl +++ b/serials/claims.pl @@ -104,7 +104,7 @@ $template->param( supplierid => $supplierid, claimletter => $claimletter, additional_fields_for_subscription => $additional_fields, - csv_profiles => [ Koha::CsvProfiles->search({ type => 'late_issues' }) ], + csv_profiles => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'late_issues' }) ], letters => $letters, (uc(C4::Context->preference("marcflavour"))) => 1 ); diff --git a/t/db_dependent/Koha/CsvProfiles.t b/t/db_dependent/Koha/CsvProfiles.t index aee3152..8b021b1 100644 --- a/t/db_dependent/Koha/CsvProfiles.t +++ b/t/db_dependent/Koha/CsvProfiles.t @@ -35,12 +35,13 @@ my $nb_of_csv_profiles = Koha::CsvProfiles->search->count; my $new_csv_profile_1 = Koha::CsvProfile->new({ profile => 'my_csv_profile_name_for_test_1', description => 'my_csv_profile_description_for_test_1', - type => 'late_issues' + type => 'sql', + used_for => 'late_issues' })->store; my $new_csv_profile_2 = Koha::CsvProfile->new({ profile => 'my_csv_profile_name_for_test_2', description => 'my_csv_profile_description_for_test_2', - type => 'marc', + type => 'marc' })->store; like( $new_csv_profile_1->export_format_id, qr|^\d+$|, 'Adding a new csv_profile should have set the export_format_id'); diff --git a/tools/csv-profiles.pl b/tools/csv-profiles.pl index a9b8525..dd09677 100755 --- a/tools/csv-profiles.pl +++ b/tools/csv-profiles.pl @@ -72,6 +72,10 @@ if ( $op eq 'add_form' ) { my $profile = $input->param("profile"); my $description = $input->param("description"); my $type = $input->param("type"); + my $used_for = + $type eq "marc" + ? $input->param("used_for_marc") + : $input->param("used_for_sql"); my $content = $type eq "marc" ? $input->param("marc_content") @@ -92,6 +96,7 @@ if ( $op eq 'add_form' ) { $csv_profile->subfield_separator($subfield_separator); $csv_profile->encoding($encoding); $csv_profile->type($type); + $csv_profile->used_for($used_for); eval { $csv_profile->store; }; if ($@) { @@ -109,6 +114,7 @@ if ( $op eq 'add_form' ) { subfield_separator => $subfield_separator, encoding => $encoding, type => $type, + used_for => $used_for, } ); eval { $csv_profile->store; }; diff --git a/tools/export.pl b/tools/export.pl index 0165cf1..4c9605b 100755 --- a/tools/export.pl +++ b/tools/export.pl @@ -300,7 +300,7 @@ else { itemtypes => $itemtypes, 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', used_for => 'export_records' }) ], messages => \@messages, ); diff --git a/virtualshelves/downloadshelf.pl b/virtualshelves/downloadshelf.pl index 5a9f440..9faf4ad 100755 --- a/virtualshelves/downloadshelf.pl +++ b/virtualshelves/downloadshelf.pl @@ -101,7 +101,7 @@ if ($shelfid && $format) { } } else { - $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ]); + $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ]); $template->param(shelfid => $shelfid); } $template->param( messages => \@messages ); diff --git a/virtualshelves/shelves.pl b/virtualshelves/shelves.pl index c328869..06d93d2 100755 --- a/virtualshelves/shelves.pl +++ b/virtualshelves/shelves.pl @@ -324,7 +324,7 @@ $template->param( messages => \@messages, category => $category, print => scalar $query->param('print') || 0, - csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ], + csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ], ); output_html_with_http_headers $query, $cookie, $template->output; -- 2.1.4