Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
33e5803e
Commit
33e5803e
authored
Jul 01, 2014
by
Zia Fazal
Committed by
Jonathan Piacenti
Aug 20, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implemented paging on courses list
parent
dca22308
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
18 deletions
+35
-18
lms/djangoapps/api_manager/courses/serializers.py
+25
-0
lms/djangoapps/api_manager/courses/tests.py
+4
-2
lms/djangoapps/api_manager/courses/views.py
+6
-16
No files found.
lms/djangoapps/api_manager/courses/serializers.py
View file @
33e5803e
""" Django REST Framework Serializers """
from
api_manager.models
import
CourseModuleCompletion
from
api_manager.utils
import
generate_base_uri
from
rest_framework
import
serializers
...
...
@@ -43,3 +44,27 @@ class CourseCompletionsLeadersSerializer(serializers.Serializer):
title
=
serializers
.
CharField
(
source
=
'user__profile__title'
)
avatar_url
=
serializers
.
CharField
(
source
=
'user__profile__avatar_url'
)
completions
=
serializers
.
IntegerField
()
class
CourseSerializer
(
serializers
.
Serializer
):
""" Serializer for Courses """
id
=
serializers
.
CharField
(
source
=
'id'
)
name
=
serializers
.
CharField
(
source
=
'display_name'
)
category
=
serializers
.
CharField
(
source
=
'location.category'
)
number
=
serializers
.
CharField
(
source
=
'location.course'
)
org
=
serializers
.
CharField
(
source
=
'location.org'
)
uri
=
serializers
.
SerializerMethodField
(
'get_uri'
)
due
=
serializers
.
DateTimeField
()
start
=
serializers
.
DateTimeField
()
end
=
serializers
.
DateTimeField
()
def
get_uri
(
self
,
course
):
"""
Builds course detail uri
"""
return
"{}/{}"
.
format
(
generate_base_uri
(
self
.
context
[
'request'
]),
course
.
id
)
class
Meta
:
""" Serializer/field specification """
#lookup_field = 'id'
#fields = ('id', 'name', 'category', 'number', 'org', 'uri', 'due', 'start', 'end')
lms/djangoapps/api_manager/courses/tests.py
View file @
33e5803e
...
...
@@ -255,9 +255,11 @@ class CoursesApiTests(TestCase):
test_uri
=
self
.
base_courses_uri
response
=
self
.
do_get
(
test_uri
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertGreater
(
len
(
response
.
data
),
0
)
self
.
assertGreater
(
len
(
response
.
data
[
'results'
]),
0
)
self
.
assertIsNotNone
(
response
.
data
[
'count'
])
self
.
assertIsNotNone
(
response
.
data
[
'num_pages'
])
matched_course
=
False
for
course
in
response
.
data
:
for
course
in
response
.
data
[
'results'
]
:
if
matched_course
is
False
and
course
[
'id'
]
==
self
.
test_course_id
:
self
.
assertEqual
(
course
[
'name'
],
self
.
test_course_name
)
self
.
assertEqual
(
course
[
'number'
],
self
.
test_course_number
)
...
...
lms/djangoapps/api_manager/courses/views.py
View file @
33e5803e
...
...
@@ -35,7 +35,7 @@ from api_manager.users.serializers import UserSerializer, UserCountByCitySeriali
from
api_manager.utils
import
generate_base_uri
from
projects.models
import
Project
,
Workgroup
from
projects.serializers
import
ProjectSerializer
,
BasicWorkgroupSerializer
from
.serializers
import
CourseModuleCompletionSerializer
from
.serializers
import
CourseModuleCompletionSerializer
,
CourseSerializer
from
.serializers
import
GradeSerializer
,
CourseLeadersSerializer
,
CourseCompletionsLeadersSerializer
from
lms.lib.comment_client.user
import
get_course_social_stats
...
...
@@ -494,11 +494,11 @@ class CourseContentDetail(SecureAPIView):
return
Response
(
response_data
,
status
=
status
.
HTTP_200_OK
)
class
CoursesList
(
SecureAPIView
):
class
CoursesList
(
Secure
List
APIView
):
"""
**Use Case**
CoursesList returns
a collection
of courses in the edX Platform. You can
CoursesList returns
paginated list
of courses in the edX Platform. You can
use the uri value in the response to get details of the course.
**Example Request**
...
...
@@ -521,22 +521,12 @@ class CoursesList(SecureAPIView):
* id: The unique identifier for the course.
"""
serializer_class
=
CourseSerializer
def
get
(
self
,
request
):
"""
GET /api/courses
"""
response_data
=
[]
def
get_queryset
(
self
):
store
=
modulestore
()
course_descriptors
=
store
.
get_courses
()
for
course_descriptor
in
course_descriptors
:
course_data
=
_serialize_content
(
request
,
course_descriptor
.
id
,
course_descriptor
)
response_data
.
append
(
course_data
)
return
Response
(
response_data
,
status
=
status
.
HTTP_200_OK
)
return
course_descriptors
class
CoursesDetail
(
SecureAPIView
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment