Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
course-discovery
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
course-discovery
Commits
f2ad580e
Commit
f2ad580e
authored
May 04, 2017
by
Matthew Piatetsky
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Include hidden course runs
LEARNER-834
parent
40439efd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
1 deletions
+33
-1
course_discovery/apps/api/v1/tests/test_views/test_courses.py
+23
-0
course_discovery/apps/api/v1/views/courses.py
+10
-1
No files found.
course_discovery/apps/api/v1/tests/test_views/test_courses.py
View file @
f2ad580e
...
...
@@ -59,6 +59,29 @@ class CourseViewSetTests(SerializationMixin, APITestCase):
self
.
serialize_course
(
self
.
course
,
extra_context
=
{
'include_deleted_programs'
:
True
})
)
def
test_get_include_hidden_course_runs
(
self
):
"""
Verify the endpoint returns associated hidden course runs
with the 'include_hidden_course_runs' flag set to True
"""
CourseRunFactory
(
status
=
CourseRunStatus
.
Published
,
end
=
datetime
.
datetime
.
now
(
pytz
.
UTC
)
+
datetime
.
timedelta
(
days
=
10
),
enrollment_start
=
None
,
enrollment_end
=
None
,
hidden
=
True
,
course
=
self
.
course
)
url
=
reverse
(
'api:v1:course-detail'
,
kwargs
=
{
'key'
:
self
.
course
.
key
})
url
+=
'?include_hidden_course_runs=1'
response
=
self
.
client
.
get
(
url
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
data
,
self
.
serialize_course
(
self
.
course
)
)
@ddt.data
(
1
,
0
)
def
test_marketable_course_runs_only
(
self
,
marketable_course_runs_only
):
"""
...
...
course_discovery/apps/api/v1/views/courses.py
View file @
f2ad580e
...
...
@@ -33,7 +33,10 @@ class CourseViewSet(viewsets.ReadOnlyModelViewSet):
queryset
=
Course
.
search
(
q
)
queryset
=
self
.
get_serializer_class
()
.
prefetch_queryset
(
queryset
=
queryset
)
else
:
course_runs
=
CourseRun
.
objects
.
exclude
(
hidden
=
True
)
if
get_query_param
(
self
.
request
,
'include_hidden_course_runs'
):
course_runs
=
CourseRun
.
objects
.
all
()
else
:
course_runs
=
CourseRun
.
objects
.
exclude
(
hidden
=
True
)
if
get_query_param
(
self
.
request
,
'marketable_course_runs_only'
):
course_runs
=
course_runs
.
marketable
()
.
active
()
...
...
@@ -82,6 +85,12 @@ class CourseViewSet(viewsets.ReadOnlyModelViewSet):
type: string
paramType: query
multiple: false
- name: include_hidden_course_runs
description: Include course runs that are hidden in the response.
required: false
type: integer
paramType: query
mulitple: false
- name: marketable_course_runs_only
description: Restrict returned course runs to those that are published, have seats,
and are enrollable or will be enrollable in the future
...
...
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