Actions
Feature #39511
closedAuto-detection of field wrapper type when importing CSV file
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
Fixed
Description
In the CSV import settings, there are four fields that you have to set. Of these, the field separator and file encoding are auto-detected.
In addition to these, I think the field wrapper could also be auto-detected, using a similar logic to that of the field separator's auto-detection.
diff --git a/app/models/import.rb b/app/models/import.rb
index fe3f24fab..2674606bb 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -65,12 +65,14 @@ class Import < ActiveRecord::Base
def set_default_settings(options={})
separator = lu(user, :general_csv_separator)
+ wrapper = '"'
encoding = lu(user, :general_csv_encoding)
if file_exists?
begin
content = File.read(filepath, 256)
separator = [',', ';'].max_by {|sep| content.count(sep)}
+ wrapper = ['"', "'"].max_by {|quote_char| content.count(quote_char)}
guessed_encoding = Redmine::CodesetUtil.guess_encoding(content)
encoding =
@@ -81,7 +83,6 @@ class Import < ActiveRecord::Base
rescue => e
end
end
- wrapper = '"'
date_format = lu(user, "date.formats.default", :default => "foo")
date_format = DATE_FORMATS.first unless DATE_FORMATS.include?(date_format)
Files
Actions