Project

General

Profile

Actions

Feature #33126

closed

Support custom fields when exporting users to CSV

Added by Mizuki ISHIKAWA over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Accounts / authentication
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
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.


Files

feature-33126.patch (2.53 KB) feature-33126.patch Mizuki ISHIKAWA, 2020-03-11 09:22
33126.patch (954 Bytes) 33126.patch Marius BĂLTEANU, 2020-04-04 17:03

Related issues

Related to Redmine - Patch #5957: Export users list to CSVClosedGo MAEDA2010-07-25

Actions
Actions #1

Updated by Mizuki ISHIKAWA over 4 years ago

I have attached a patch.

Actions #2

Updated by Go MAEDA over 4 years ago

  • Target version set to Candidate for next major release
Actions #3

Updated by Go MAEDA over 4 years ago

  • Target version changed from Candidate for next major release to 4.2.0

Setting the target version to 4.2.0.

Actions #4

Updated by Go MAEDA over 4 years ago

  • Subject changed from Add UserCustomField value to csv of users list to Support custom fields when exporting users to CSV
  • Status changed from New to Closed
  • Assignee set to Go MAEDA
  • Resolution set to Fixed

Committed the patch. Thank you for improving Redmine.

Actions #5

Updated by Go MAEDA over 4 years ago

  • Related to Patch #5957: Export users list to CSV added
Actions #6

Updated by Marius BĂLTEANU over 4 years 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
Actions #7

Updated by Go MAEDA over 4 years 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
Actions #8

Updated by Marius BĂLTEANU over 4 years 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.

Actions #10

Updated by Go MAEDA over 4 years 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 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:
[...]

Done in r19643. Thank you.

Actions #11

Updated by Go MAEDA over 4 years 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)
Actions #12

Updated by Go MAEDA over 4 years ago

  • Status changed from Reopened to Closed

Go MAEDA wrote:

I think it is better to sort columns for custom fields according to the position value, as issues CSV do.

[...]

Committed the fix in r19767.

Actions

Also available in: Atom PDF