Feature #33126
Support custom fields when exporting users to CSV
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | Accounts / authentication | |||
Target version: | 4.2.0 | |||
Resolution: | Fixed |
Description
You can export the users list csv(#5957), but it does not include the value of UserCustomField.
The value of UserCustomField should also be output as csv.
Related issues
Associated revisions
Support custom fields when exporting users to CSV (#33126).
Patch by Mizuki ISHIKAWA.
RuboCop: Add "EnforcedStyle: sprintf" (#33126).
Fix that custom fields in users CSV are not ordered by position value (#33126).
History
#5
Updated by Go MAEDA 11 months ago
- Related to Patch #5957: Export users list to CSV added
#6
Updated by Marius BALTEANU 11 months ago
- Status changed from Closed to Reopened
Offenses: app/helpers/users_helper.rb:99:15: C: Style/FormatString: Favor format over sprintf. sprintf('%.2f', v).gsub('.', l(:general_csv_decimal_separator)) ^^^^^^^ 889 files inspected, 1 offense detected
#7
Updated by Go MAEDA 11 months ago
The following code fixes the Rubocop offence:
Index: app/helpers/users_helper.rb
===================================================================
--- app/helpers/users_helper.rb (リビジョン 19642)
+++ app/helpers/users_helper.rb (作業コピー)
@@ -96,7 +96,7 @@
format_object(value, false) do |v|
case v.class.name
when 'Float'
- sprintf('%.2f', v).gsub('.', l(:general_csv_decimal_separator))
+ format('%.2f', v).gsub('.', l(:general_csv_decimal_separator))
else
v
end
#8
Updated by Marius BALTEANU 11 months ago
Go MAEDA wrote:
The following code fixes the Rubocop offence:
[...]
Yes, this is an option, but format
is just an alias of sprintf
and it's not used anywhere else in the code. I propose to stick to sprintf
and fix this using the following code:
mariusbalteanu@Mariuss-MacBook-Pro redmine % git diff
diff --git a/.rubocop.yml b/.rubocop.yml
index 73f1d18f0..4b63e0b5f 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -83,6 +83,9 @@ Style/AsciiComments:
Style/EmptyElse:
EnforcedStyle: empty
+Style/FormatString:
+ EnforcedStyle: sprintf
+
Style/FormatStringToken:
Enabled: false
In another ticket, we should replace in the code the "percent" style used in some files with sprintf
and remove the todo from rubocop.
#9
Updated by Marius BALTEANU 11 months ago
- File 33126.patch
added
#10
Updated by Go MAEDA 11 months ago
- Status changed from Reopened to Closed
Marius BALTEANU wrote:
Go MAEDA wrote:
The following code fixes the Rubocop offence:
[...]
Yes, this is an option, but
format
is just an alias ofsprintf
and it's not used anywhere else in the code. I propose to stick tosprintf
and fix this using the following code:
[...]
Done in r19643. Thank you.
#11
Updated by Go MAEDA 10 months ago
- Status changed from Closed to Reopened
I think it is better to sort columns for custom fields according to the position value, as issues CSV do.
diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb
index 2a72a5db4..264259d5b 100644
--- a/app/helpers/users_helper.rb
+++ b/app/helpers/users_helper.rb
@@ -82,7 +82,7 @@ module UsersHelper
'last_login_on',
'status'
]
- user_custom_fields = UserCustomField.all
+ user_custom_fields = UserCustomField.sorted
# csv header fields
csv << columns.map {|column| l('field_' + column)} + user_custom_fields.pluck(:name)