Commit 5d84d4c7 by Dennis Jen Committed by Daniel Friedman

address comments

parent 58c42303
......@@ -223,7 +223,7 @@ class RosterEntry(DocType):
email = String()
enrollment_mode = String()
cohort = String()
segments = String(fields={'raw': String()})
segments = String() # segments is an array/list of strings
problems_attempted = Integer()
problems_completed = Integer()
problem_attempts_per_completed = Float()
......
......@@ -348,8 +348,7 @@ class LearnerSerializer(serializers.Serializer, DefaultIfNoneMixin):
engagements[field] = self.default_if_none(getattr(obj, field, None), 0)
# preserve null values for problem attempts per completed
no_default_field = 'problem_attempts_per_completed'
engagements[no_default_field] = getattr(obj, no_default_field, None)
engagements['problem_attempts_per_completed'] = getattr(obj, 'problem_attempts_per_completed', None)
return engagements
......
......@@ -150,13 +150,13 @@ class LearnerTests(VerifyCourseIdMixin, LearnerAPITestMixin, TestCaseWithAuthent
@ddt.data(
('ed_xavier', 'Edward Xavier', 'edX/DemoX/Demo_Course', 'honor', ['has_potential'], 'Team edX',
43, 3, 6, 0, 8.4, 2, '2015-04-24', '2015-08-05'),
('ed_xavier', 'Edward Xavier', 'edX/DemoX/Demo_Course', 'verified', None, None,
None, None, None, None, None, None, None, None),
('ed_xavier', 'Edward Xavier', 'edX/DemoX/Demo_Course', 'verified'),
)
@ddt.unpack
def test_get_user(self, username, name, course_id, enrollment_mode, segments, cohort, problems_attempted,
problems_completed, videos_viewed, discussions_contributed, problem_attempts_per_completed,
attempt_ratio_order, enrollment_date, last_updated):
def test_get_user(self, username, name, course_id, enrollment_mode, segments=None, cohort=None,
problems_attempted=None, problems_completed=None, videos_viewed=None,
discussions_contributed=None, problem_attempts_per_completed=None,
attempt_ratio_order=None, enrollment_date=None, last_updated=None):
self.create_learners([{
"username": username,
......
......@@ -176,9 +176,8 @@ class LearnerListView(CourseViewMixin, generics.ListAPIView):
query_params = self.request.QUERY_PARAMS
# Ordering by problem_attempts_per_completed can be ambiguous because
# it's a ratio values could be infinite (e.g. divide by zero) if no problems
# were completed. Instead, sorting by attempt_ratio_order will produce
# a sensible ordering
# values could be infinite (e.g. divide by zero) if no problems were completed.
# Instead, sorting by attempt_ratio_order will produce a sensible ordering
order_by = query_params.get('order_by')
order_by = 'attempt_ratio_order' if order_by == 'problem_attempts_per_completed' else order_by
......
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