From 7457f278af685eb3f71eed57db2ff333c1c32814 Mon Sep 17 00:00:00 2001 From: Josef Moravec Date: Mon, 20 Mar 2017 11:12:54 +0000 Subject: [PATCH] Bug 8612: [Follow-up] Make usage and type different columns in table Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart --- acqui/basket.pl | 2 +- basket/basket.pl | 2 +- basket/downloadcart.pl | 2 +- .../data/mysql/atomicupdate/bug_8612.sql | 5 ++- installer/data/mysql/kohastructure.sql | 1 + .../prog/en/modules/tools/csv-profiles.tt | 45 ++++++++++++++++--- 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, 62 insertions(+), 18 deletions(-) diff --git a/acqui/basket.pl b/acqui/basket.pl index 779d64b9e4..244e471a9b 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 62a37ab52d..14f661fd5f 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 f5cec95e97..278b2c7168 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 37a643b346..4e0ea01ac5 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 c293b7915c..85b286d1d5 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -718,6 +718,7 @@ CREATE TABLE `export_format` ( `subfield_separator` varchar(2) NOT NULL, `encoding` varchar(255) NOT NULL, `type` varchar(255) DEFAULT 'marc', + `used_for` 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 38d8269c4d..d6d2d4c35c 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,10 +102,17 @@ 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 - [% ELSE %] Uknown type + [% IF type_code == 'marc' %] MARC + [% ELSIF type_code == 'sql' %] SQL + [% ELSE %] Unknown 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 %] Unknown usage [% END %] [% END %] @@ -132,7 +139,7 @@ function reloadPage(p) {
  • Required
  • +
  • + + +
  • +
  • + + +
  • @@ -233,7 +264,7 @@ function reloadPage(p) {

    CSV profiles

    - [% IF csv_profiles%] + [% IF csv_profiles %] @@ -242,6 +273,7 @@ function reloadPage(p) { + @@ -254,6 +286,7 @@ function reloadPage(p) { + diff --git a/opac/opac-downloadcart.pl b/opac/opac-downloadcart.pl index 75ab4a1323..d20000ed1e 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 51769c40c6..b91f3a359e 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 fbf7743852..44cff74865 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 aee315259e..8b021b1738 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 a9b8525fa9..dd09677676 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 208d7f4d78..72b18c4756 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 5a9f4401f9..9faf4ad22b 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 c328869fd4..06d93d2cae 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.39.5
    CSV profile IDContent CSV separator CSV typeUsage    
    [% 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