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
ba7b016d
Commit
ba7b016d
authored
Jun 01, 2016
by
Malik Shahzad
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #757 from edx/malikshahzad228/basket-view-switch
WL-457, WL458: Basket Switch View links added
parents
ce8ff8ee
46104dde
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
47 additions
and
6 deletions
+47
-6
ecommerce/extensions/basket/utils.py
+22
-0
ecommerce/extensions/basket/views.py
+9
-3
ecommerce/extensions/catalogue/utils.py
+2
-2
ecommerce/static/sass/partials/views/_basket.scss
+4
-0
ecommerce/templates/oscar/basket/partials/basket_content.html
+10
-1
No files found.
ecommerce/extensions/basket/utils.py
View file @
ba7b016d
...
@@ -4,10 +4,12 @@ from django.conf import settings
...
@@ -4,10 +4,12 @@ from django.conf import settings
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
from
oscar.core.loading
import
get_class
,
get_model
from
oscar.core.loading
import
get_class
,
get_model
from
ecommerce.core.constants
import
ENROLLMENT_CODE_PRODUCT_CLASS_NAME
,
SEAT_PRODUCT_CLASS_NAME
from
ecommerce.referrals.models
import
Referral
from
ecommerce.referrals.models
import
Referral
Applicator
=
get_class
(
'offer.utils'
,
'Applicator'
)
Applicator
=
get_class
(
'offer.utils'
,
'Applicator'
)
Basket
=
get_model
(
'basket'
,
'Basket'
)
Basket
=
get_model
(
'basket'
,
'Basket'
)
StockRecord
=
get_model
(
'partner'
,
'StockRecord'
)
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
...
@@ -63,3 +65,23 @@ def get_certificate_type_display_value(certificate_type):
...
@@ -63,3 +65,23 @@ def get_certificate_type_display_value(certificate_type):
raise
ValueError
(
'Certificate Type [
%
s] not found.'
,
certificate_type
)
raise
ValueError
(
'Certificate Type [
%
s] not found.'
,
certificate_type
)
return
display_values
[
certificate_type
]
return
display_values
[
certificate_type
]
def
get_basket_switch_data
(
product
):
product_class_name
=
product
.
get_product_class
()
.
name
if
product_class_name
==
ENROLLMENT_CODE_PRODUCT_CLASS_NAME
:
switch_link_text
=
_
(
'Click here to just purchase an enrollment for yourself'
)
structure
=
'child'
elif
product_class_name
==
SEAT_PRODUCT_CLASS_NAME
:
switch_link_text
=
_
(
'Click here to purchase multiple seats in this course'
)
structure
=
'standalone'
try
:
partner_sku
=
StockRecord
.
objects
.
get
(
product__course_id
=
product
.
course_id
,
product__structure
=
structure
)
.
partner_sku
except
StockRecord
.
DoesNotExist
:
partner_sku
=
None
return
switch_link_text
,
partner_sku
ecommerce/extensions/basket/views.py
View file @
ba7b016d
...
@@ -19,7 +19,7 @@ from ecommerce.core.url_utils import get_lms_url, get_lms_enrollment_base_api_ur
...
@@ -19,7 +19,7 @@ from ecommerce.core.url_utils import get_lms_url, get_lms_enrollment_base_api_ur
from
ecommerce.coupons.views
import
get_voucher_from_code
from
ecommerce.coupons.views
import
get_voucher_from_code
from
ecommerce.courses.utils
import
mode_for_seat
from
ecommerce.courses.utils
import
mode_for_seat
from
ecommerce.extensions.analytics.utils
import
prepare_analytics_data
from
ecommerce.extensions.analytics.utils
import
prepare_analytics_data
from
ecommerce.extensions.basket.utils
import
get_certificate_type_display_value
,
prepare_basket
from
ecommerce.extensions.basket.utils
import
get_certificate_type_display_value
,
prepare_basket
,
get_basket_switch_data
from
ecommerce.extensions.offer.utils
import
format_benefit_value
from
ecommerce.extensions.offer.utils
import
format_benefit_value
from
ecommerce.extensions.partner.shortcuts
import
get_partner_for_site
from
ecommerce.extensions.partner.shortcuts
import
get_partner_for_site
...
@@ -112,8 +112,8 @@ class BasketSummaryView(BasketView):
...
@@ -112,8 +112,8 @@ class BasketSummaryView(BasketView):
lines
=
context
.
get
(
'line_list'
,
[])
lines
=
context
.
get
(
'line_list'
,
[])
lines_data
=
[]
lines_data
=
[]
api
=
EdxRestApiClient
(
get_lms_url
(
'api/courses/v1/'
))
api
=
EdxRestApiClient
(
get_lms_url
(
'api/courses/v1/'
))
is_verification_required
=
False
is_verification_required
=
is_bulk_purchase
=
False
is_bulk_purchase
=
False
switch_link_text
=
partner_sku
=
''
for
line
in
lines
:
for
line
in
lines
:
course_key
=
CourseKey
.
from_string
(
line
.
product
.
attr
.
course_key
)
course_key
=
CourseKey
.
from_string
(
line
.
product
.
attr
.
course_key
)
...
@@ -137,6 +137,9 @@ class BasketSummaryView(BasketView):
...
@@ -137,6 +137,9 @@ class BasketSummaryView(BasketView):
if
line
.
product
.
get_product_class
()
.
name
==
ENROLLMENT_CODE_PRODUCT_CLASS_NAME
:
if
line
.
product
.
get_product_class
()
.
name
==
ENROLLMENT_CODE_PRODUCT_CLASS_NAME
:
is_bulk_purchase
=
True
is_bulk_purchase
=
True
# Get variables for alternative basket view
switch_link_text
,
partner_sku
=
get_basket_switch_data
(
line
.
product
)
if
line
.
has_discount
:
if
line
.
has_discount
:
benefit
=
self
.
request
.
basket
.
applied_offers
()
.
values
()[
0
]
.
benefit
benefit
=
self
.
request
.
basket
.
applied_offers
()
.
values
()[
0
]
.
benefit
benefit_value
=
format_benefit_value
(
benefit
)
benefit_value
=
format_benefit_value
(
benefit
)
...
@@ -176,5 +179,8 @@ class BasketSummaryView(BasketView):
...
@@ -176,5 +179,8 @@ class BasketSummaryView(BasketView):
'is_verification_required'
:
is_verification_required
,
'is_verification_required'
:
is_verification_required
,
'min_seat_quantity'
:
1
,
'min_seat_quantity'
:
1
,
'is_bulk_purchase'
:
is_bulk_purchase
,
'is_bulk_purchase'
:
is_bulk_purchase
,
'switch_link_text'
:
switch_link_text
,
'partner_sku'
:
partner_sku
,
})
})
return
context
return
context
ecommerce/extensions/catalogue/utils.py
View file @
ba7b016d
...
@@ -4,7 +4,7 @@ from hashlib import md5
...
@@ -4,7 +4,7 @@ from hashlib import md5
from
oscar.core.loading
import
get_model
from
oscar.core.loading
import
get_model
from
ecommerce.core.constants
import
ENROLLMENT_CODE_PRODUCT_CLASS_NAME
from
ecommerce.core.constants
import
ENROLLMENT_CODE_PRODUCT_CLASS_NAME
,
SEAT_PRODUCT_CLASS_NAME
Catalog
=
get_model
(
'catalogue'
,
'Catalog'
)
Catalog
=
get_model
(
'catalogue'
,
'Catalog'
)
StockRecord
=
get_model
(
'partner'
,
'StockRecord'
)
StockRecord
=
get_model
(
'partner'
,
'StockRecord'
)
...
@@ -32,7 +32,7 @@ def generate_sku(product, partner):
...
@@ -32,7 +32,7 @@ def generate_sku(product, partner):
getattr
(
product
.
attr
,
'seat_type'
,
''
),
getattr
(
product
.
attr
,
'seat_type'
,
''
),
unicode
(
partner
.
id
)
unicode
(
partner
.
id
)
))
))
elif
product_class
.
name
==
'Seat'
:
elif
product_class
.
name
==
SEAT_PRODUCT_CLASS_NAME
:
_hash
=
' '
.
join
((
_hash
=
' '
.
join
((
getattr
(
product
.
attr
,
'certificate_type'
,
''
),
getattr
(
product
.
attr
,
'certificate_type'
,
''
),
product
.
attr
.
course_key
,
product
.
attr
.
course_key
,
...
...
ecommerce/static/sass/partials/views/_basket.scss
View file @
ba7b016d
...
@@ -194,6 +194,10 @@
...
@@ -194,6 +194,10 @@
@include
float
(
right
);
@include
float
(
right
);
}
}
.basket-switch-link
{
padding
:
10px
10px
10px
0px
;
}
.payment-buttons
{
.payment-buttons
{
.payment-button
{
.payment-button
{
border-color
:
#1E8142
;
border-color
:
#1E8142
;
...
...
ecommerce/templates/oscar/basket/partials/basket_content.html
View file @
ba7b016d
...
@@ -129,7 +129,16 @@
...
@@ -129,7 +129,16 @@
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-6 col-lg-offset-6 col-md-8 col-md-offset-4 col-sm-10 col-sm-offset-2"
>
<div
class=
"col-sm-12"
>
{# Switch Basket view in between single and bulk purchase items #}
{% if partner_sku %}
<div
class=
"pull-left basket-switch-link"
>
<a
href=
"/basket/single-item/?sku={{ partner_sku }}"
class=
"btn btn-link"
>
{{ switch_link_text }}
</a>
</div>
{% endif %}
<div
class=
"pull-right payment-buttons"
data-basket-id=
"{{ basket.id }}"
>
<div
class=
"pull-right payment-buttons"
data-basket-id=
"{{ basket.id }}"
>
{% if free_basket %}
{% if free_basket %}
<a
href=
"{% url 'checkout:free-checkout' %}"
<a
href=
"{% url 'checkout:free-checkout' %}"
...
...
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