summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/issue_import.rb6
-rw-r--r--app/views/imports/_fields_mapping.html.erb4
-rw-r--r--test/fixtures/files/import_issues.csv8
-rw-r--r--test/unit/issue_import_test.rb9
4 files changed, 22 insertions, 5 deletions
diff --git a/app/models/issue_import.rb b/app/models/issue_import.rb
index e7d7a56aa..4ecd4b517 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 4ac2b570f..0e1d455fa 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]} %>
</p>
+<p>
+ <label><%= l(:field_status) %></label>
+ <%= mapping_select_tag @import, 'status' %>
+</p>
<div class="splitcontent">
<div class="splitcontentleft">
diff --git a/test/fixtures/files/import_issues.csv b/test/fixtures/files/import_issues.csv
index 6990cb534..fa9d22665 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 6d39214d5..88da82c88 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')