Commit 2cd06d30 by Kelketek

Merge pull request #415 from open-craft/threads_read

Added threads read to export of discussion participation.
parents 3a7070e8 0944608e
......@@ -30,6 +30,7 @@ class DiscussionExportFields(object):
UPVOTES = u"num_upvotes"
FOLOWERS = u"num_thread_followers"
COMMENTS_GENERATED = u"num_comments_generated"
THREADS_READ = u"num_threads_read"
class Command(BaseCommand):
......@@ -145,7 +146,9 @@ class Extractor(object):
""" Extracts discussion participation data from db and cs_comments_service """
@classmethod
def _make_social_stats(cls, threads=0, comments=0, replies=0, upvotes=0, followers=0, comments_generated=0):
def _make_social_stats(
cls, threads=0, comments=0, replies=0, upvotes=0, followers=0, comments_generated=0, threads_read=0
):
""" Builds social stats with values specified """
return {
DiscussionExportFields.THREADS: threads,
......@@ -154,6 +157,7 @@ class Extractor(object):
DiscussionExportFields.UPVOTES: upvotes,
DiscussionExportFields.FOLOWERS: followers,
DiscussionExportFields.COMMENTS_GENERATED: comments_generated,
DiscussionExportFields.THREADS_READ: threads_read,
}
def _get_users(self, course_key):
......@@ -203,7 +207,8 @@ class Exporter(object):
DiscussionExportFields.USERNAME, DiscussionExportFields.EMAIL, DiscussionExportFields.FIRST_NAME,
DiscussionExportFields.LAST_NAME, DiscussionExportFields.USER_ID,
DiscussionExportFields.THREADS, DiscussionExportFields.COMMENTS, DiscussionExportFields.REPLIES,
DiscussionExportFields.UPVOTES, DiscussionExportFields.FOLOWERS, DiscussionExportFields.COMMENTS_GENERATED
DiscussionExportFields.UPVOTES, DiscussionExportFields.FOLOWERS, DiscussionExportFields.COMMENTS_GENERATED,
DiscussionExportFields.THREADS_READ
]
def export(self, data):
......
......@@ -162,6 +162,7 @@ def _make_social_stats(**kwargs):
DiscussionExportFields.UPVOTES: 0,
DiscussionExportFields.FOLOWERS: 0,
DiscussionExportFields.COMMENTS_GENERATED: 0,
DiscussionExportFields.THREADS_READ: 0,
}
result.update(kwargs)
return result
......@@ -181,6 +182,7 @@ def _make_result(user_id, **kwargs):
DiscussionExportFields.UPVOTES: 0,
DiscussionExportFields.FOLOWERS: 0,
DiscussionExportFields.COMMENTS_GENERATED: 0,
DiscussionExportFields.THREADS_READ: 0,
}
result.update(kwargs)
return result
......@@ -265,17 +267,19 @@ class ExporterTest(TestCase):
_make_result(
1, username=u"Q", email=u"q@e.com", first_name=u"w", last_name=u"e",
num_threads=1, num_comments=3, num_replies=7,
num_upvotes=2, num_thread_followers=4, num_comments_generated=4
num_upvotes=2, num_thread_followers=4, num_comments_generated=4,
num_threads_read=2,
),
_make_result(
2, username="A", email="a@d.com", first_name="s", last_name="d",
num_threads=7, num_comments=15, num_replies=3,
num_upvotes=4, num_thread_followers=5, num_comments_generated=19
num_upvotes=4, num_thread_followers=5, num_comments_generated=19,
num_threads_read=3,
)
])
lines = stream.getvalue().split("\r\n")
self.assertEqual(len(lines), 4)
self.assertEqual(lines[0], u",".join(exporter.row_order))
self.assertEqual(lines[1], u"A,a@d.com,s,d,2,7,15,3,4,5,19")
self.assertEqual(lines[2], u"Q,q@e.com,w,e,1,1,3,7,2,4,4")
self.assertEqual(lines[1], u"A,a@d.com,s,d,2,7,15,3,4,5,19,3")
self.assertEqual(lines[2], u"Q,q@e.com,w,e,1,1,3,7,2,4,4,2")
self.assertEqual(lines[3], u"")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment