Milimetric has submitted this change and it was merged.

Change subject: invalid wikiuser view
......................................................................


invalid wikiuser view

Change-Id: I41ea22d00a87f7dd297453bb1a0b01df70cdbf5f
---
M tests/fixtures.py
M tests/test_controllers/test_cohorts.py
M wikimetrics/controllers/cohorts.py
M wikimetrics/templates/cohorts.html
4 files changed, 37 insertions(+), 1 deletion(-)

Approvals:
  Milimetric: Verified; Looks good to me, approved



diff --git a/tests/fixtures.py b/tests/fixtures.py
index 7761ab1..420edd5 100644
--- a/tests/fixtures.py
+++ b/tests/fixtures.py
@@ -175,6 +175,7 @@
                     'mediawiki_userid'      : editor.user_id,
                     'project'               : self.project,
                     'valid'                 : True,
+                    'validating_cohort'     : self.cohort.id,
                 }
                 for editor in self.editors
             ]
diff --git a/tests/test_controllers/test_cohorts.py 
b/tests/test_controllers/test_cohorts.py
index ccc6572..85f3fd1 100644
--- a/tests/test_controllers/test_cohorts.py
+++ b/tests/test_controllers/test_cohorts.py
@@ -197,3 +197,20 @@
             csv='not a file',
         ))
         assert_true(response.data.find('Server error while processing your 
upload') >= 0)
+    
+    def test_invalid_wiki_user_view(self):
+        invalid = self.session.query(WikiUser).first()
+        invalid.valid = False
+        invalid.reason_invalid = 'check for this in an assert'
+        self.session.commit()
+        response = self.app.get('/cohorts/detail/invalid-users/{0}'.format(
+            self.cohort.id
+        ))
+        assert_equal(response.status_code, 200)
+        assert_true(response.data.find(invalid.mediawiki_username) >= 0)
+        assert_true(response.data.find(invalid.reason_invalid) >= 0)
+    
+    def test_invalid_wiki_user_view_error(self):
+        response = self.app.get('/cohorts/detail/invalid-users/0')
+        assert_equal(response.status_code, 200)
+        assert_true(response.data.find('Error fetching invalid users for') >= 
0)
diff --git a/wikimetrics/controllers/cohorts.py 
b/wikimetrics/controllers/cohorts.py
index fe39c13..2c03e13 100644
--- a/wikimetrics/controllers/cohorts.py
+++ b/wikimetrics/controllers/cohorts.py
@@ -51,6 +51,22 @@
     } for c in cohorts])
 
 
[email protected]('/cohorts/detail/invalid-users/<int:cohort_id>')
+def cohort_invalid_detail(cohort_id):
+    session = db.get_session()
+    try:
+        cohort = Cohort.get_safely(session, current_user.id, by_id=cohort_id)
+        wikiusers = session.query(WikiUser.mediawiki_username, 
WikiUser.reason_invalid)\
+            .filter(WikiUser.validating_cohort == cohort.id) \
+            .filter(WikiUser.valid.in_([False, None])) \
+            .all()
+        return json_response(invalid_wikiusers=[wu._asdict() for wu in 
wikiusers])
+    except:
+        return json_error('Error fetching invalid users for 
{0}'.format(cohort_id))
+    finally:
+        session.close()
+
+
 @app.route('/cohorts/detail/<string:name_or_id>')
 def cohort_detail(name_or_id):
     """
diff --git a/wikimetrics/templates/cohorts.html 
b/wikimetrics/templates/cohorts.html
index 3d5558a..60216cd 100644
--- a/wikimetrics/templates/cohorts.html
+++ b/wikimetrics/templates/cohorts.html
@@ -55,7 +55,9 @@
                 <span data-bind="text: validated_count"></span> of
                 <span data-bind="text: total_count"></span> cohort members.
                 <span data-bind="text: valid_count"></span> are valid,
-                <span data-bind="text: invalid_count"></span> are invalid.
+                <a data-bind="attr: {href: '/cohorts/detail/invalid-users/' + 
id()}" target="_blank">
+                    <span data-bind="text: invalid_count"></span> are invalid.
+                </a>
             </p>
             <p>
             </p>

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I41ea22d00a87f7dd297453bb1a0b01df70cdbf5f
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Milimetric <[email protected]>
Gerrit-Reviewer: Milimetric <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to