From f6754a0f7a37973d3f7296d0c75ac8d20204d682 2016-06-07 18:39:44 From: Jean-Philippe Lang Date: 2016-06-07 18:39:44 Subject: [PATCH] Make Status map-able for CSV import (#22951). git-svn-id: http://svn.redmine.org/redmine/trunk@15493 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/issue_import.rb b/app/models/issue_import.rb index e7d7a56..4ecd4b5 100644 --- a/app/models/issue_import.rb +++ b/app/models/issue_import.rb @@ -92,7 +92,11 @@ class IssueImport < Import 'subject' => row_value(row, 'subject'), 'description' => row_value(row, 'description') } - attributes + if status_name = row_value(row, 'status') + if status_id = IssueStatus.named(status_name).first.try(:id) + attributes['status_id'] = status_id + end + end issue.send :safe_attributes=, attributes, user attributes = {} diff --git a/app/views/imports/_fields_mapping.html.erb b/app/views/imports/_fields_mapping.html.erb index 4ac2b57..0e1d455 100644 --- a/app/views/imports/_fields_mapping.html.erb +++ b/app/views/imports/_fields_mapping.html.erb @@ -9,6 +9,10 @@ <%= mapping_select_tag @import, 'tracker', :required => true, :values => @import.allowed_target_trackers.sorted.map {|t| [t.name, t.id]} %>

+

+ + <%= mapping_select_tag @import, 'status' %> +

diff --git a/test/fixtures/files/import_issues.csv b/test/fixtures/files/import_issues.csv index 6990cb5..fa9d226 100644 --- a/test/fixtures/files/import_issues.csv +++ b/test/fixtures/files/import_issues.csv @@ -1,4 +1,4 @@ -priority;subject;description;start_date;due_date;parent;private;progress;custom;version;category;user;estimated_hours;tracker -High;First;First description;2015-07-08;2015-08-25;;no;;PostgreSQL;;New category;dlopper;1;bug -Normal;Child 1;Child description;;;1;yes;10;MySQL;2.0;New category;;2;feature request -Normal;Child of existing issue;Child description;;;#2;no;20;;2.1;Printing;;3;bug +priority;subject;description;start_date;due_date;parent;private;progress;custom;version;category;user;estimated_hours;tracker;status +High;First;First description;2015-07-08;2015-08-25;;no;;PostgreSQL;;New category;dlopper;1;bug;new +Normal;Child 1;Child description;;;1;yes;10;MySQL;2.0;New category;;2;feature request;new +Normal;Child of existing issue;Child description;;;#2;no;20;;2.1;Printing;;3;bug;assigned diff --git a/test/unit/issue_import_test.rb b/test/unit/issue_import_test.rb index 6d39214..88da82c 100644 --- a/test/unit/issue_import_test.rb +++ b/test/unit/issue_import_test.rb @@ -89,6 +89,15 @@ class IssueImportTest < ActiveSupport::TestCase assert_include "Tracker cannot be blank", item.message end + def test_status_should_be_set + import = generate_import_with_mapping + import.mapping.merge!('status' => '14') + import.save! + + issues = new_records(Issue, 3) { import.run } + assert_equal ['New', 'New', 'Assigned'], issues.map(&:status).map(&:name) + end + def test_parent_should_be_set import = generate_import_with_mapping import.mapping.merge!('parent_issue_id' => '5')