Commit 3f6deda3 by Zia Fazal

Changes base on Matt's Feedback

Changes base on Matt's Feedback
parent 052d51c5
...@@ -998,7 +998,7 @@ class CoursesApiTests(TestCase): ...@@ -998,7 +998,7 @@ class CoursesApiTests(TestCase):
response = self.do_get(test_uri) response = self.do_get(test_uri)
self.assertEqual(response.status_code, 404) self.assertEqual(response.status_code, 404)
def test_modules_users_list_get(self): def test_course_content_users_list_get(self):
test_uri = '{}/{}/groups'.format(self.base_course_content_uri, self.course_project.id) test_uri = '{}/{}/groups'.format(self.base_course_content_uri, self.course_project.id)
test_uri_users = '{}/{}/users'.format(self.base_course_content_uri, self.course_project.id) test_uri_users = '{}/{}/users'.format(self.base_course_content_uri, self.course_project.id)
test_course_users_uri = self.base_courses_uri + '/' + self.test_course_id + '/users' test_course_users_uri = self.base_courses_uri + '/' + self.test_course_id + '/users'
...@@ -1050,22 +1050,22 @@ class CoursesApiTests(TestCase): ...@@ -1050,22 +1050,22 @@ class CoursesApiTests(TestCase):
response = self.do_post(test_course_users_uri, data) response = self.do_post(test_course_users_uri, data)
self.assertEqual(response.status_code, 201) self.assertEqual(response.status_code, 201)
response = self.do_get('{}/{}'.format(test_uri_users, 'enrolled')) response = self.do_get('{}?users_type={}'.format(test_uri_users, 'enrolled'))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 2) self.assertEqual(len(response.data), 2)
response = self.do_get('{}/{}'.format(test_uri_users, 'notenrolled')) response = self.do_get('{}?users_type={}'.format(test_uri_users, 'notenrolled'))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1) self.assertEqual(len(response.data), 1)
#filter by group id #filter by group id
response = self.do_get('{}/{}?group_id={}'.format(test_uri_users, 'enrolled', group_id)) response = self.do_get('{}?users_type={}&group_id={}'.format(test_uri_users, 'enrolled', group_id))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1) self.assertEqual(len(response.data), 1)
response = self.do_get('{}/{}?group_id={}'.format(test_uri_users, 'notenrolled', group_id)) response = self.do_get('{}?users_type={}&group_id={}'.format(test_uri_users, 'notenrolled', group_id))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1) self.assertEqual(len(response.data), 1)
#filter by group type #filter by group type
response = self.do_get('{}/{}?type={}'.format(test_uri_users, 'enrolled', 'project')) response = self.do_get('{}?users_type={}&type={}'.format(test_uri_users, 'enrolled', 'project'))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1) self.assertEqual(len(response.data), 1)
...@@ -15,7 +15,7 @@ urlpatterns = patterns( ...@@ -15,7 +15,7 @@ urlpatterns = patterns(
url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/groups/(?P<group_id>[0-9]+)$', courses_views.CourseContentGroupsDetail.as_view()), url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/groups/(?P<group_id>[0-9]+)$', courses_views.CourseContentGroupsDetail.as_view()),
url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/groups/*$', courses_views.CourseContentGroupsList.as_view()), url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/groups/*$', courses_views.CourseContentGroupsList.as_view()),
url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/children/*$', courses_views.CourseContentList.as_view()), url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/children/*$', courses_views.CourseContentList.as_view()),
url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/users/(?P<users_type>[a-zA-Z]+)/*$', courses_views.ModulesUsersList.as_view()), url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)/users/*$', courses_views.CourseContentUsersList.as_view()),
url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)$', courses_views.CourseContentDetail.as_view()), url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/(?P<content_id>[a-zA-Z0-9/_:]+)$', courses_views.CourseContentDetail.as_view()),
url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/*$', courses_views.CourseContentList.as_view()), url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/content/*$', courses_views.CourseContentList.as_view()),
url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/groups/(?P<group_id>[0-9]+)$', courses_views.CoursesGroupsDetail.as_view()), url(r'^(?P<course_id>[^/]+/[^/]+/[^/]+)/groups/(?P<group_id>[0-9]+)$', courses_views.CoursesGroupsDetail.as_view()),
......
...@@ -844,10 +844,15 @@ class CourseContentGroupsDetail(APIView): ...@@ -844,10 +844,15 @@ class CourseContentGroupsDetail(APIView):
return Response(response_data, status=status.HTTP_200_OK) return Response(response_data, status=status.HTTP_200_OK)
class ModulesUsersList(generics.ListAPIView): class CourseContentUsersList(generics.ListAPIView):
""" """
This View supports get method which returns users enrolled and ### The CourseContentUsersList view allows clients to users enrolled and
users not enrolled for course within all groups of course users not enrolled for course within all groups of course
- URI: ```/api/courses/{course_id}/content/{content_id}/users```
- GET: Returns a JSON representation of users enrolled or not enrolled
### Use Cases/Notes:
* Use CourseContentUsersList to grab the users enrolled in Course content group
* Use CourseContentUsersList to grab the users not enrolled in Course content group
""" """
permission_classes = (ApiKeyHeaderPermission,) permission_classes = (ApiKeyHeaderPermission,)
serializer_class = UserSerializer serializer_class = UserSerializer
...@@ -861,7 +866,7 @@ class ModulesUsersList(generics.ListAPIView): ...@@ -861,7 +866,7 @@ class ModulesUsersList(generics.ListAPIView):
""" """
course_id = self.kwargs['course_id'] course_id = self.kwargs['course_id']
content_id = self.kwargs['content_id'] content_id = self.kwargs['content_id']
users_type = self.kwargs['users_type'] users_type = self.request.QUERY_PARAMS.get('users_type', None)
group_type = self.request.QUERY_PARAMS.get('type', None) group_type = self.request.QUERY_PARAMS.get('type', None)
group_id = self.request.QUERY_PARAMS.get('group_id', None) group_id = self.request.QUERY_PARAMS.get('group_id', None)
groups = CourseContentGroupRelationship.objects.filter(course_id=course_id, content_id=content_id) groups = CourseContentGroupRelationship.objects.filter(course_id=course_id, content_id=content_id)
......
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