Terrrydactyl has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/104731


Change subject: Added user_name information for CSV output
......................................................................

Added user_name information for CSV output

Changed the CSV output on simple CSV and timeseries CSV to display the
user_name in addition to the user_id.

Created new function get_username_via_id(user_id) to map the user_name from the
id given.

Change-Id: I839eb8cf9dc7f31e84782bd66ad882e96d54b6f7
---
M wikimetrics/controllers/reports.py
1 file changed, 18 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/wikimetrics 
refs/changes/31/104731/1

diff --git a/wikimetrics/controllers/reports.py 
b/wikimetrics/controllers/reports.py
index eb1751d..f64d904 100644
--- a/wikimetrics/controllers/reports.py
+++ b/wikimetrics/controllers/reports.py
@@ -6,7 +6,7 @@
 from flask.ext.login import current_user
 
 from wikimetrics.configurables import app, db
-from wikimetrics.models import Report, RunReport, PersistentReport
+from wikimetrics.models import Report, RunReport, PersistentReport, WikiUser
 from wikimetrics.metrics import TimeseriesChoices
 from wikimetrics.models.report_nodes import Aggregation
 from wikimetrics.utils import (
@@ -122,6 +122,17 @@
         return json_response(status=celery_task.status)
 
 
+def get_username_via_id(user_id):
+    """
+    Parameters
+        user_id : id to match for user_name
+    """
+    db_session = db.get_session()
+    ret = db_session.query(WikiUser.mediawiki_userid, 
WikiUser.mediawiki_username).filter(WikiUser.mediawiki_userid.in_([user_id])).all()
+    db_session.close()
+    return ret[0][1]
+
+
 def get_timeseries_csv(task_result, pj, parameters):
     """
     Parameters
@@ -146,9 +157,9 @@
             columns = task_result[Aggregation.STD].values()[0].keys()
         
         # if task_result is not empty find header in first row
-        fieldnames = ['user_id', 'submetric'] + sorted(columns)
+        fieldnames = ['user_id', 'user_name', 'submetric'] + sorted(columns)
     else:
-        fieldnames = ['user_id', 'submetric']
+        fieldnames = ['user_id', 'user_name', 'submetric']
     writer = DictWriter(csv_io, fieldnames)
     
     # collect rows to output in CSV
@@ -161,6 +172,7 @@
             for subrow in row.keys():
                 task_row = row[subrow].copy()
                 task_row['user_id'] = user_id
+                task_row['user_name'] = get_username_via_id(user_id)
                 task_row['submetric'] = subrow
                 task_rows.append(task_row)
     
@@ -230,9 +242,9 @@
             columns = task_result[Aggregation.STD].keys()
         
         # if task_result is not empty find header in first row
-        fieldnames = ['user_id'] + columns
+        fieldnames = ['user_id', 'user_name'] + columns
     else:
-        fieldnames = ['user_id']
+        fieldnames = ['user_id', 'user_name']
     writer = DictWriter(csv_io, fieldnames)
     
     # collect rows to output in CSV
@@ -244,6 +256,7 @@
         for user_id, row in task_result[Aggregation.IND][0].iteritems():
             task_row = row.copy()
             task_row['user_id'] = user_id
+            task_row['user_name'] = get_username_via_id(user_id)
             task_rows.append(task_row)
     
     # Aggregate Results

-- 
To view, visit https://gerrit.wikimedia.org/r/104731
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I839eb8cf9dc7f31e84782bd66ad882e96d54b6f7
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Terrrydactyl <tcho...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to