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
bccd44b3
Commit
bccd44b3
authored
Jul 12, 2016
by
Vedran Karačić
Committed by
GitHub
Jul 12, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #851 from edx/vkaracic/SOL-1820
[SOL-1820] Remove code that retrieves clients from baskets.
parents
0fda7294
56d145f4
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
6 additions
and
59 deletions
+6
-59
ecommerce/extensions/api/serializers.py
+1
-9
ecommerce/extensions/api/v2/tests/views/test_coupons.py
+0
-10
ecommerce/extensions/api/v2/views/coupons.py
+4
-13
ecommerce/extensions/voucher/tests/test_utils.py
+0
-14
ecommerce/extensions/voucher/utils.py
+1
-13
No files found.
ecommerce/extensions/api/serializers.py
View file @
bccd44b3
...
@@ -6,8 +6,6 @@ import logging
...
@@ -6,8 +6,6 @@ import logging
from
dateutil.parser
import
parse
from
dateutil.parser
import
parse
from
django.db
import
transaction
from
django.db
import
transaction
from
django.http
import
Http404
from
django.shortcuts
import
get_object_or_404
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.contrib.auth
import
get_user_model
from
django.contrib.auth
import
get_user_model
from
oscar.core.loading
import
get_model
,
get_class
from
oscar.core.loading
import
get_model
,
get_class
...
@@ -471,13 +469,7 @@ class CouponSerializer(ProductPaymentInfoMixin, serializers.ModelSerializer):
...
@@ -471,13 +469,7 @@ class CouponSerializer(ProductPaymentInfoMixin, serializers.ModelSerializer):
return
serializer
.
data
return
serializer
.
data
def
get_client
(
self
,
obj
):
def
get_client
(
self
,
obj
):
basket
=
Basket
.
objects
.
filter
(
lines__product_id
=
obj
.
id
)
.
first
()
return
Invoice
.
objects
.
get
(
order__basket__lines__product
=
obj
)
.
business_client
.
name
try
:
order
=
get_object_or_404
(
Order
,
basket
=
basket
)
invoice
=
get_object_or_404
(
Invoice
,
order
=
order
)
return
invoice
.
business_client
.
name
except
Http404
:
return
basket
.
owner
.
username
def
get_vouchers
(
self
,
obj
):
def
get_vouchers
(
self
,
obj
):
vouchers
=
obj
.
attr
.
coupon_vouchers
.
vouchers
.
all
()
vouchers
=
obj
.
attr
.
coupon_vouchers
.
vouchers
.
all
()
...
...
ecommerce/extensions/api/v2/tests/views/test_coupons.py
View file @
bccd44b3
...
@@ -521,16 +521,6 @@ class CouponViewSetFunctionalTest(CouponMixin, CourseCatalogTestMixin, CourseCat
...
@@ -521,16 +521,6 @@ class CouponViewSetFunctionalTest(CouponMixin, CourseCatalogTestMixin, CourseCat
invoice
=
Invoice
.
objects
.
get
(
order__basket
=
basket
)
invoice
=
Invoice
.
objects
.
get
(
order__basket
=
basket
)
self
.
assertEqual
(
invoice
.
business_client
.
name
,
client_username
)
self
.
assertEqual
(
invoice
.
business_client
.
name
,
client_username
)
# To test the old coupon clients, we need to delete all basket orders
Order
.
objects
.
filter
(
basket__in
=
baskets
)
.
delete
()
CouponViewSet
()
.
update_coupon_client
(
baskets
=
baskets
,
client_username
=
client_username
)
baskets
=
Basket
.
objects
.
filter
(
lines__product_id
=
self
.
coupon
.
id
)
self
.
assertEqual
(
baskets
.
first
()
.
owner
.
username
,
client_username
)
def
test_update_invoice_data
(
self
):
def
test_update_invoice_data
(
self
):
invoice
=
Invoice
.
objects
.
get
(
order__basket__lines__product
=
self
.
coupon
)
invoice
=
Invoice
.
objects
.
get
(
order__basket__lines__product
=
self
.
coupon
)
self
.
assertEqual
(
invoice
.
discount_type
,
Invoice
.
PERCENTAGE
)
self
.
assertEqual
(
invoice
.
discount_type
,
Invoice
.
PERCENTAGE
)
...
...
ecommerce/extensions/api/v2/views/coupons.py
View file @
bccd44b3
...
@@ -13,7 +13,7 @@ from rest_framework import filters, generics, status, viewsets
...
@@ -13,7 +13,7 @@ from rest_framework import filters, generics, status, viewsets
from
rest_framework.permissions
import
IsAdminUser
,
IsAuthenticated
from
rest_framework.permissions
import
IsAdminUser
,
IsAuthenticated
from
rest_framework.response
import
Response
from
rest_framework.response
import
Response
from
ecommerce.core.models
import
BusinessClient
,
User
from
ecommerce.core.models
import
BusinessClient
from
ecommerce.coupons.utils
import
prepare_course_seat_types
from
ecommerce.coupons.utils
import
prepare_course_seat_types
from
ecommerce.extensions.api
import
data
as
data_api
from
ecommerce.extensions.api
import
data
as
data_api
from
ecommerce.extensions.api.constants
import
APIConstants
as
AC
from
ecommerce.extensions.api.constants
import
APIConstants
as
AC
...
@@ -437,22 +437,13 @@ class CouponViewSet(EdxOrderPlacementMixin, viewsets.ModelViewSet):
...
@@ -437,22 +437,13 @@ class CouponViewSet(EdxOrderPlacementMixin, viewsets.ModelViewSet):
def
update_coupon_client
(
self
,
baskets
,
client_username
):
def
update_coupon_client
(
self
,
baskets
,
client_username
):
"""
"""
Update Invoice client for new coupons
or Basket owner for old coupons
Update Invoice client for new coupons
.
Arguments:
Arguments:
baskets (QuerySet): Baskets associated with the coupons
baskets (QuerySet): Baskets associated with the coupons
client_username (str): Client username
client_username (str): Client username
"""
"""
try
:
client
,
__
=
BusinessClient
.
objects
.
get_or_create
(
name
=
client_username
)
client
,
__
=
BusinessClient
.
objects
.
get_or_create
(
name
=
client_username
)
Invoice
.
objects
.
filter
(
order__basket
=
baskets
.
first
())
.
update
(
business_client
=
client
)
order
=
get_object_or_404
(
Order
,
basket
=
baskets
.
first
())
invoices
=
Invoice
.
objects
.
filter
(
order
=
order
)
if
invoices
:
invoices
.
update
(
business_client
=
client
)
else
:
raise
Http404
except
Http404
:
user
,
__
=
User
.
objects
.
get_or_create
(
username
=
client_username
)
baskets
.
update
(
owner
=
user
)
def
update_invoice_data
(
self
,
coupon
,
data
):
def
update_invoice_data
(
self
,
coupon
,
data
):
"""
"""
...
...
ecommerce/extensions/voucher/tests/test_utils.py
View file @
bccd44b3
...
@@ -360,20 +360,6 @@ class UtilTests(CouponMixin, CourseCatalogMockMixin, CourseCatalogTestMixin, Lms
...
@@ -360,20 +360,6 @@ class UtilTests(CouponMixin, CourseCatalogMockMixin, CourseCatalogTestMixin, Lms
self
.
assertEqual
(
inactive_coupon_row
[
'Coupon Name'
],
coupon_name
)
self
.
assertEqual
(
inactive_coupon_row
[
'Coupon Name'
],
coupon_name
)
self
.
assertEqual
(
inactive_coupon_row
[
'Status'
],
_
(
'Inactive'
))
self
.
assertEqual
(
inactive_coupon_row
[
'Status'
],
_
(
'Inactive'
))
def
test_generate_coupon_report_for_old_coupons
(
self
):
""" Verify that the client info is present for old coupons. """
self
.
setup_coupons_for_report
()
Order
.
objects
.
get
(
basket
=
self
.
basket
)
.
delete
()
ProductCategory
.
objects
.
all
()
.
delete
()
self
.
mock_course_api_response
(
course
=
self
.
course
)
__
,
rows
=
generate_coupon_report
(
self
.
coupon_vouchers
)
for
row
in
rows
:
self
.
assertEqual
(
row
[
'Client'
],
self
.
basket
.
owner
.
username
)
self
.
assertEqual
(
row
[
'Category'
],
''
)
def
test_generate_coupon_report_for_query_coupons
(
self
):
def
test_generate_coupon_report_for_query_coupons
(
self
):
""" Verify empty report fields for query coupons. """
""" Verify empty report fields for query coupons. """
catalog_query
=
'course:*'
catalog_query
=
'course:*'
...
...
ecommerce/extensions/voucher/utils.py
View file @
bccd44b3
...
@@ -7,8 +7,6 @@ import uuid
...
@@ -7,8 +7,6 @@ import uuid
from
django.conf
import
settings
from
django.conf
import
settings
from
django.core.urlresolvers
import
reverse
from
django.core.urlresolvers
import
reverse
from
django.http
import
Http404
from
django.shortcuts
import
get_object_or_404
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
from
opaque_keys.edx.keys
import
CourseKey
from
opaque_keys.edx.keys
import
CourseKey
from
oscar.core.loading
import
get_model
from
oscar.core.loading
import
get_model
...
@@ -205,17 +203,7 @@ def generate_coupon_report(coupon_vouchers):
...
@@ -205,17 +203,7 @@ def generate_coupon_report(coupon_vouchers):
for
coupon_voucher
in
coupon_vouchers
:
for
coupon_voucher
in
coupon_vouchers
:
coupon
=
coupon_voucher
.
coupon
coupon
=
coupon_voucher
.
coupon
client
=
Invoice
.
objects
.
get
(
order__basket__lines__product
=
coupon
)
.
business_client
.
name
# Get client based on the invoice that was created during coupon creation.
# We used to save the client as the basket owner and therefor the exception
# catch is put in place for backwards compatibility with older coupons.
basket
=
Basket
.
objects
.
filter
(
lines__product_id
=
coupon
.
id
)
.
first
()
try
:
order
=
get_object_or_404
(
Order
,
basket
=
basket
)
invoice
=
get_object_or_404
(
Invoice
,
order
=
order
)
client
=
invoice
.
business_client
.
name
except
Http404
:
client
=
basket
.
owner
.
username
for
voucher
in
coupon_voucher
.
vouchers
.
all
():
for
voucher
in
coupon_voucher
.
vouchers
.
all
():
row
=
_get_info_for_coupon_report
(
coupon
,
voucher
)
row
=
_get_info_for_coupon_report
(
coupon
,
voucher
)
...
...
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