From 757cea05a4c3b3eed87393cb12dbce6557e443a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Fern=C3=A1ndez?= Date: Fri, 31 Oct 2014 15:21:43 -0200 Subject: [PATCH 1/2] Feature: Extended user stats in user export csv --- app/jobs/regular/export_csv_file.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/jobs/regular/export_csv_file.rb b/app/jobs/regular/export_csv_file.rb index 8c215bdef8b..ae4f58d8f13 100644 --- a/app/jobs/regular/export_csv_file.rb +++ b/app/jobs/regular/export_csv_file.rb @@ -26,7 +26,10 @@ module Jobs user_data.each do |user| user_array = Array.new group_names = get_group_names(user).join(';') - user_array.push(user['id']).push(user['name']).push(user['username']).push(user['email']) + user_array.push(user['id']).push(user['name']).push(user['username']).push(user['email']).push(user['created_at']) + .push(user.user_stat['topics_entered']).push(user.user_stat['posts_read_count']).push(user.user_stat['time_read']) + .push(user.user_stat['topic_count']).push(user.user_stat['post_count']).push(user.user_stat['likes_given']) + .push(user.user_stat['likes_received']) user_array.push(group_names) if group_names != '' data.push(user_array) end From 61ff64d0118df349c4ea3ad3c37aca779d98f3e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Fern=C3=A1ndez?= Date: Mon, 3 Nov 2014 13:04:51 -0200 Subject: [PATCH 2/2] Resfactor: improve syntax extended user stats in user export csv --- app/jobs/regular/export_csv_file.rb | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/app/jobs/regular/export_csv_file.rb b/app/jobs/regular/export_csv_file.rb index ae4f58d8f13..dad9ee55409 100644 --- a/app/jobs/regular/export_csv_file.rb +++ b/app/jobs/regular/export_csv_file.rb @@ -26,10 +26,7 @@ module Jobs user_data.each do |user| user_array = Array.new group_names = get_group_names(user).join(';') - user_array.push(user['id']).push(user['name']).push(user['username']).push(user['email']).push(user['created_at']) - .push(user.user_stat['topics_entered']).push(user.user_stat['posts_read_count']).push(user.user_stat['time_read']) - .push(user.user_stat['topic_count']).push(user.user_stat['post_count']).push(user.user_stat['likes_given']) - .push(user.user_stat['likes_received']) + user_array = get_user_fields(user) user_array.push(group_names) if group_names != '' data.push(user_array) end @@ -54,6 +51,22 @@ module Jobs return group_names end + def get_user_fields(user) + csv_user_attrs = ['id','name','username','email','created_at'] + csv_user_stats_attr = ['topics_entered','posts_read_count','time_read','topic_count','post_count','likes_given','likes_received'] + user_array = [] + + csv_user_attrs.each do |user_attr| + user_array.push(user.attributes[user_attr]) + end + + csv_user_stats_attr.each do |user_stat_attr| + user_array.push(user.user_stat.attributes[user_stat_attr]) + end + + return user_array + end + def set_file_path @file_name = "export_#{SecureRandom.hex(4)}.csv" # ensure directory exists