Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
ecommerce
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
ecommerce
Commits
ebc3c1ad
Commit
ebc3c1ad
authored
Nov 07, 2016
by
Ivan Ivic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "[SOL-1975] Code | Offer Page - Display in order of Course Launch Date"
This reverts commit
4067da49
.
parent
0d27093d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
12 additions
and
27 deletions
+12
-27
ecommerce/coupons/utils.py
+4
-6
ecommerce/extensions/api/v2/tests/views/test_vouchers.py
+4
-15
ecommerce/extensions/api/v2/views/vouchers.py
+4
-6
No files found.
ecommerce/coupons/utils.py
View file @
ebc3c1ad
...
@@ -8,7 +8,7 @@ from oscar.core.loading import get_model
...
@@ -8,7 +8,7 @@ from oscar.core.loading import get_model
Product
=
get_model
(
'catalogue'
,
'Product'
)
Product
=
get_model
(
'catalogue'
,
'Product'
)
def
get_range_catalog_query_results
(
limit
,
query
,
site
,
offset
=
None
,
ordering
=
None
):
def
get_range_catalog_query_results
(
limit
,
query
,
site
,
offset
=
None
):
"""
"""
Get catalog query results
Get catalog query results
...
@@ -17,22 +17,20 @@ def get_range_catalog_query_results(limit, query, site, offset=None, ordering=No
...
@@ -17,22 +17,20 @@ def get_range_catalog_query_results(limit, query, site, offset=None, ordering=No
query (str): ElasticSearch Query
query (str): ElasticSearch Query
site (Site): Site object containing Site Configuration data
site (Site): Site object containing Site Configuration data
offset (int): Page offset
offset (int): Page offset
ordering (str): Course Discovery results ordering (only start is enabled for now)
Returns:
Returns:
dict: Query sea
r
ch results received from Course Catalog API
dict: Query seach results received from Course Catalog API
"""
"""
partner_code
=
site
.
siteconfiguration
.
partner
.
short_code
partner_code
=
site
.
siteconfiguration
.
partner
.
short_code
cache_key
=
'course_runs_{}_{}_{}_{}
_{}'
.
format
(
query
,
limit
,
offset
,
partner_code
,
ordering
)
cache_key
=
'course_runs_{}_{}_{}_{}
'
.
format
(
query
,
limit
,
offset
,
partner_code
)
cache_hash
=
hashlib
.
md5
(
cache_key
)
.
hexdigest
()
cache_hash
=
hashlib
.
md5
(
cache_key
)
.
hexdigest
()
response
=
cache
.
get
(
cache_hash
)
response
=
cache
.
get
(
cache_hash
)
if
not
response
:
if
not
response
:
response
=
site
.
siteconfiguration
.
course_catalog_api_client
.
course_runs
.
get
(
response
=
site
.
siteconfiguration
.
course_catalog_api_client
.
course_runs
.
get
(
limit
=
limit
,
limit
=
limit
,
offset
=
offset
,
offset
=
offset
,
ordering
=
ordering
,
partner
=
partner_code
,
q
=
query
,
q
=
query
,
partner
=
partner_code
)
)
cache
.
set
(
cache_hash
,
response
,
settings
.
COURSES_API_CACHE_TIMEOUT
)
cache
.
set
(
cache_hash
,
response
,
settings
.
COURSES_API_CACHE_TIMEOUT
)
return
response
return
response
...
...
ecommerce/extensions/api/v2/tests/views/test_vouchers.py
View file @
ebc3c1ad
...
@@ -82,29 +82,28 @@ class VoucherViewSetTests(CourseCatalogMockMixin, CourseCatalogTestMixin, LmsApi
...
@@ -82,29 +82,28 @@ class VoucherViewSetTests(CourseCatalogMockMixin, CourseCatalogTestMixin, LmsApi
'next'
:
'path/to/the/next/page'
,
'next'
:
'path/to/the/next/page'
,
'results'
:
[]
'results'
:
[]
}
}
dates
=
[
'2015-05-01T00:00:00Z'
,
'2016-05-01T00:00:00Z'
,
'2014-05-01T00:00:00Z'
]
products
=
[]
products
=
[]
new_range
,
__
=
Range
.
objects
.
get_or_create
(
catalog_query
=
'*:*'
,
course_seat_types
=
seat_type
)
new_range
,
__
=
Range
.
objects
.
get_or_create
(
catalog_query
=
'*:*'
,
course_seat_types
=
seat_type
)
if
seats
:
if
seats
:
for
i
,
seat
in
enumerate
(
seats
)
:
for
seat
in
seats
:
course_run_info
[
'results'
]
.
append
({
course_run_info
[
'results'
]
.
append
({
'image'
:
{
'image'
:
{
'src'
:
'path/to/the/course/image'
'src'
:
'path/to/the/course/image'
},
},
'key'
:
seat
.
course_id
,
'key'
:
seat
.
course_id
,
'start'
:
dates
[
i
%
3
]
,
'start'
:
'2016-05-01T00:00:00Z'
,
'title'
:
seat
.
title
,
'title'
:
seat
.
title
,
})
})
new_range
.
add_product
(
seat
)
new_range
.
add_product
(
seat
)
else
:
else
:
for
i
in
range
(
quantity
):
for
_
in
range
(
quantity
):
course
,
seat
=
self
.
create_course_and_seat
(
seat_type
=
seat_type
)
course
,
seat
=
self
.
create_course_and_seat
(
seat_type
=
seat_type
)
course_run_info
[
'results'
]
.
append
({
course_run_info
[
'results'
]
.
append
({
'image'
:
{
'image'
:
{
'src'
:
'path/to/the/course/image'
'src'
:
'path/to/the/course/image'
},
},
'key'
:
course
.
id
,
'key'
:
course
.
id
,
'start'
:
dates
[
i
%
3
]
,
'start'
:
'2016-05-01T00:00:00Z'
,
'title'
:
course
.
name
,
'title'
:
course
.
name
,
})
})
new_range
.
add_product
(
seat
)
new_range
.
add_product
(
seat
)
...
@@ -123,16 +122,6 @@ class VoucherViewSetTests(CourseCatalogMockMixin, CourseCatalogTestMixin, LmsApi
...
@@ -123,16 +122,6 @@ class VoucherViewSetTests(CourseCatalogMockMixin, CourseCatalogTestMixin, LmsApi
@httpretty.activate
@httpretty.activate
@mock_course_catalog_api_client
@mock_course_catalog_api_client
def
test_get_offers_return_sorted_offers
(
self
):
""" Verify get_offers sorts the offers returned by start date """
__
,
request
,
voucher
=
self
.
prepare_get_offers_response
(
quantity
=
3
)
offers
=
VoucherViewSet
()
.
get_offers
(
request
=
request
,
voucher
=
voucher
)[
'results'
]
self
.
assertTrue
(
offers
[
0
][
'course_start_date'
]
<
offers
[
1
][
'course_start_date'
]
<
offers
[
2
][
'course_start_date'
]
)
@httpretty.activate
@mock_course_catalog_api_client
def
test_omitting_unavailable_seats
(
self
):
def
test_omitting_unavailable_seats
(
self
):
""" Verify an unavailable seat is omitted from offer page results. """
""" Verify an unavailable seat is omitted from offer page results. """
products
,
request
,
voucher
=
self
.
prepare_get_offers_response
(
quantity
=
2
)
products
,
request
,
voucher
=
self
.
prepare_get_offers_response
(
quantity
=
2
)
...
...
ecommerce/extensions/api/v2/views/vouchers.py
View file @
ebc3c1ad
...
@@ -109,14 +109,13 @@ class VoucherViewSet(NonDestroyableModelViewSet):
...
@@ -109,14 +109,13 @@ class VoucherViewSet(NonDestroyableModelViewSet):
stock_records
=
StockRecord
.
objects
.
filter
(
product__in
=
products
)
stock_records
=
StockRecord
.
objects
.
filter
(
product__in
=
products
)
return
products
,
stock_records
return
products
,
stock_records
def
get_offers_from_query
(
self
,
request
,
voucher
,
catalog_query
,
ordering
=
None
):
def
get_offers_from_query
(
self
,
request
,
voucher
,
catalog_query
):
""" Helper method for collecting offers from catalog query.
""" Helper method for collecting offers from catalog query.
Args:
Args:
request (WSGIRequest): Request data.
request (WSGIRequest): Request data.
voucher (Voucher): Oscar Voucher for which the offers are returned.
voucher (Voucher): Oscar Voucher for which the offers are returned.
catalog_query (str): The query for the Course Discovery.
catalog_query (str): The query for the Course Discovery.
ordering (str): Course Discovery results ordering (only start is enabled for now)
Returns:
Returns:
A list of dictionaries with retrieved offers and a link to the next
A list of dictionaries with retrieved offers and a link to the next
...
@@ -131,9 +130,8 @@ class VoucherViewSet(NonDestroyableModelViewSet):
...
@@ -131,9 +130,8 @@ class VoucherViewSet(NonDestroyableModelViewSet):
response
=
get_range_catalog_query_results
(
response
=
get_range_catalog_query_results
(
limit
=
request
.
GET
.
get
(
'limit'
,
DEFAULT_CATALOG_PAGE_SIZE
),
limit
=
request
.
GET
.
get
(
'limit'
,
DEFAULT_CATALOG_PAGE_SIZE
),
offset
=
request
.
GET
.
get
(
'offset'
),
offset
=
request
.
GET
.
get
(
'offset'
),
ordering
=
ordering
,
query
=
catalog_query
,
query
=
catalog_query
,
site
=
request
.
site
,
site
=
request
.
site
)
)
next_page
=
response
[
'next'
]
next_page
=
response
[
'next'
]
products
,
stock_records
=
self
.
retrieve_course_objects
(
response
[
'results'
],
course_seat_types
)
products
,
stock_records
=
self
.
retrieve_course_objects
(
response
[
'results'
],
course_seat_types
)
...
@@ -191,7 +189,7 @@ class VoucherViewSet(NonDestroyableModelViewSet):
...
@@ -191,7 +189,7 @@ class VoucherViewSet(NonDestroyableModelViewSet):
voucher
=
voucher
voucher
=
voucher
))
))
return
sorted
(
offers
,
key
=
lambda
offer
:
offer
[
'course_start_date'
])
,
next_page
return
offers
,
next_page
def
get_offers
(
self
,
request
,
voucher
):
def
get_offers
(
self
,
request
,
voucher
):
"""
"""
...
@@ -209,7 +207,7 @@ class VoucherViewSet(NonDestroyableModelViewSet):
...
@@ -209,7 +207,7 @@ class VoucherViewSet(NonDestroyableModelViewSet):
offers
=
[]
offers
=
[]
if
catalog_query
:
if
catalog_query
:
offers
,
next_page
=
self
.
get_offers_from_query
(
request
,
voucher
,
catalog_query
,
ordering
=
'start'
)
offers
,
next_page
=
self
.
get_offers_from_query
(
request
,
voucher
,
catalog_query
)
else
:
else
:
product_range
=
voucher
.
offers
.
first
()
.
benefit
.
range
product_range
=
voucher
.
offers
.
first
()
.
benefit
.
range
products
=
product_range
.
all_products
()
products
=
product_range
.
all_products
()
...
...
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