mirror of
https://github.com/redmine/redmine.git
synced 2025-11-12 00:06:01 +01:00
Support custom fields when exporting users to CSV (#33126).
Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@19642 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -82,16 +82,24 @@ module UsersHelper
|
||||
'last_login_on',
|
||||
'status'
|
||||
]
|
||||
user_custom_fields = UserCustomField.all
|
||||
|
||||
# csv header fields
|
||||
csv << columns.map{|column| l('field_' + column)}
|
||||
csv << columns.map {|column| l('field_' + column)} + user_custom_fields.pluck(:name)
|
||||
# csv lines
|
||||
users = users.preload(:custom_values)
|
||||
users.each do |user|
|
||||
csv << columns.map do |column|
|
||||
if column == 'status'
|
||||
l(("status_#{User::LABEL_BY_STATUS[user.status]}"))
|
||||
else
|
||||
format_object(user.send(column), false)
|
||||
values = columns.map {|c| c == 'status' ? l("status_#{User::LABEL_BY_STATUS[user.status]}") : user.send(c)} +
|
||||
user_custom_fields.map {|custom_field| user.custom_value_for(custom_field)}
|
||||
|
||||
csv << values.map do |value|
|
||||
format_object(value, false) do |v|
|
||||
case v.class.name
|
||||
when 'Float'
|
||||
sprintf('%.2f', v).gsub('.', l(:general_csv_decimal_separator))
|
||||
else
|
||||
v
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user