Milimetric has uploaded a new change for review.
https://gerrit.wikimedia.org/r/97301
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(-)
git pull ssh://gerrit.wikimedia.org:29418/analytics/wikimetrics
refs/changes/01/97301/1
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: newchange
Gerrit-Change-Id: I41ea22d00a87f7dd297453bb1a0b01df70cdbf5f
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Milimetric <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits