Mobile enrollments API: sort order by recent enrollment date.
This commit is contained in:
@@ -5,7 +5,7 @@ Tests for users API
|
|||||||
import datetime
|
import datetime
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from xmodule.modulestore.tests.factories import ItemFactory
|
from xmodule.modulestore.tests.factories import ItemFactory, CourseFactory
|
||||||
from xmodule.modulestore.django import modulestore
|
from xmodule.modulestore.django import modulestore
|
||||||
from student.models import CourseEnrollment
|
from student.models import CourseEnrollment
|
||||||
|
|
||||||
@@ -66,6 +66,23 @@ class TestUserEnrollmentApi(MobileAPITestCase, MobileAuthUserTestMixin, MobileEn
|
|||||||
courses = response.data
|
courses = response.data
|
||||||
self.assertEqual(len(courses), 0)
|
self.assertEqual(len(courses), 0)
|
||||||
|
|
||||||
|
def test_sort_order(self):
|
||||||
|
self.login()
|
||||||
|
|
||||||
|
num_courses = 3
|
||||||
|
courses = []
|
||||||
|
for course_num in range(num_courses):
|
||||||
|
courses.append(CourseFactory.create(mobile_available=True))
|
||||||
|
self.enroll(courses[course_num].id)
|
||||||
|
|
||||||
|
# verify courses are returned in the order of enrollment, with most recently enrolled first.
|
||||||
|
response = self.api_response()
|
||||||
|
for course_num in range(num_courses):
|
||||||
|
self.assertEqual(
|
||||||
|
response.data[course_num]['course']['id'], # pylint: disable=no-member
|
||||||
|
unicode(courses[num_courses - course_num - 1].id)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class CourseStatusAPITestCase(MobileAPITestCase):
|
class CourseStatusAPITestCase(MobileAPITestCase):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -241,7 +241,10 @@ class UserCourseEnrollmentsList(generics.ListAPIView):
|
|||||||
lookup_field = 'username'
|
lookup_field = 'username'
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
enrollments = self.queryset.filter(user__username=self.kwargs['username'], is_active=True).order_by('created')
|
enrollments = self.queryset.filter(
|
||||||
|
user__username=self.kwargs['username'],
|
||||||
|
is_active=True
|
||||||
|
).order_by('created').reverse()
|
||||||
return [
|
return [
|
||||||
enrollment for enrollment in enrollments
|
enrollment for enrollment in enrollments
|
||||||
if enrollment.course and is_mobile_available_for_user(self.request.user, enrollment.course)
|
if enrollment.course and is_mobile_available_for_user(self.request.user, enrollment.course)
|
||||||
|
|||||||
Reference in New Issue
Block a user