mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 11:37:14 +00:00
Time Entry Import fails to import custom fields with "User" format (#38254).
Patch by Jens Krämer. git-svn-id: https://svn.redmine.org/redmine/trunk@22112 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
dc50caf1be
commit
a3ca8ba677
@ -116,8 +116,10 @@ class TimeEntryImport < Import
|
||||
|
||||
if issue_id = row_value(row, 'issue_id').presence
|
||||
attributes[:issue_id] = issue_id
|
||||
object.project = issue_project(issue_id)
|
||||
else
|
||||
attributes[:project_id] = project.id
|
||||
object.project = project
|
||||
end
|
||||
|
||||
attributes['custom_field_values'] = object.custom_field_values.inject({}) do |h, v|
|
||||
@ -137,4 +139,10 @@ class TimeEntryImport < Import
|
||||
object.send(:safe_attributes=, attributes, user)
|
||||
object
|
||||
end
|
||||
|
||||
def issue_project(issue_id)
|
||||
if issue_project_id = Issue.where(id: issue_id).limit(1).pick(:project_id)
|
||||
(@projects_cache ||= {})[issue_project_id] ||= allowed_target_projects.find_by_id(issue_project_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -187,6 +187,33 @@ class TimeEntryImportTest < ActiveSupport::TestCase
|
||||
assert_equal 1, fourth.project_id
|
||||
end
|
||||
|
||||
def test_imports_custom_field_with_user_format
|
||||
cf = TimeEntryCustomField.create! name: 'User Field', field_format: 'user'
|
||||
import = generate_import
|
||||
import.settings = {
|
||||
'separator' => ';', 'wrapper' => '"', 'encoding' => 'UTF-8',
|
||||
'mapping' => {
|
||||
'project_id' => '1',
|
||||
'activity' => 'value:10',
|
||||
'issue_id' => '1',
|
||||
'spent_on' => '2',
|
||||
'hours' => '3',
|
||||
'comments' => '4',
|
||||
'user' => '7',
|
||||
"cf_#{cf.id}" => '7'
|
||||
}
|
||||
}
|
||||
import.save!
|
||||
first, second, third, fourth = new_records(TimeEntry, 4) {import.run}
|
||||
jsmith = User.find_by_login 'jsmith'
|
||||
dlopper = User.find_by_login 'dlopper'
|
||||
|
||||
assert_equal dlopper.id, third.custom_values.where(custom_field: cf.id).first.value.to_i
|
||||
assert_equal jsmith.id, fourth.custom_values.where(custom_field: cf.id).first.value.to_i
|
||||
assert_equal jsmith.id, first.custom_values.where(custom_field: cf.id).first.value.to_i
|
||||
assert_equal jsmith.id, second.custom_values.where(custom_field: cf.id).first.value.to_i
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def generate_import(fixture_name='import_time_entries.csv')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user