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
51c8478f
Commit
51c8478f
authored
Jun 25, 2018
by
christopher lee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP: ProgramApplicator
parent
a0e43486
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
50 additions
and
12 deletions
+50
-12
ecommerce/extensions/basket/utils.py
+2
-1
ecommerce/extensions/offer/applicator.py
+37
-0
ecommerce/settings/base.py
+11
-11
No files found.
ecommerce/extensions/basket/utils.py
View file @
51c8478f
...
...
@@ -13,12 +13,13 @@ from django.utils.translation import ugettext_lazy as _
from
oscar.core.loading
import
get_class
,
get_model
from
ecommerce.courses.utils
import
mode_for_product
from
ecommerce.extensions.offer.applicator
import
ProgramApplicator
from
ecommerce.extensions.order.exceptions
import
AlreadyPlacedOrderException
from
ecommerce.extensions.order.utils
import
UserAlreadyPlacedOrder
from
ecommerce.extensions.payment.utils
import
embargo_check
from
ecommerce.referrals.models
import
Referral
Applicator
=
get_class
(
'offer.applicator'
,
'Applicator'
)
Applicator
=
ProgramApplicator
Basket
=
get_model
(
'basket'
,
'Basket'
)
BasketAttribute
=
get_model
(
'basket'
,
'BasketAttribute'
)
BasketAttributeType
=
get_model
(
'basket'
,
'BasketAttributeType'
)
...
...
ecommerce/extensions/offer/applicator.py
0 → 100644
View file @
51c8478f
import
logging
from
itertools
import
chain
import
newrelic
import
waffle
from
oscar.core.loading
import
get_model
,
get_class
ConditionalOffer
=
get_model
(
'offer'
,
'ConditionalOffer'
)
Applicator
=
get_class
(
'offer.utils'
,
'Applicator'
)
logger
=
logging
.
getLogger
(
__name__
)
class
ProgramApplicator
(
Applicator
):
@newrelic.agent.function_trace
()
def
apply_offers
(
self
,
basket
,
offers
):
super
(
ProgramApplicator
,
self
)
.
apply_offers
(
basket
,
offers
)
def
get_offers
(
self
,
basket
,
user
=
None
,
request
=
None
):
import
pdb
pdb
.
set_trace
()
if
waffle
.
switch_is_active
(
"debug_selective_offers"
):
site_offers
=
self
.
get_site_offers
()
logger
.
info
(
"ProgramApplicator.get_offers.site_offers: {}"
.
format
(
site_offers
))
basket_offers
=
self
.
get_basket_offers
(
basket
,
user
)
logger
.
info
(
"ProgramApplicator.get_offers.site_offers: {}"
.
format
(
basket_offers
))
user_offers
=
self
.
get_user_offers
(
user
)
logger
.
info
(
"ProgramApplicator.get_offers.site_offers: {}"
.
format
(
user_offers
))
session_offers
=
self
.
get_session_offers
(
request
)
logger
.
info
(
"ProgramApplicator.get_offers.site_offers: {}"
.
format
(
session_offers
))
return
list
(
sorted
(
chain
(
session_offers
,
basket_offers
,
user_offers
,
site_offers
),
key
=
lambda
o
:
o
.
priority
,
reverse
=
True
))
else
:
super
(
ProgramApplicator
,
self
)
.
get_offers
(
basket
,
user
,
request
)
ecommerce/settings/base.py
View file @
51c8478f
...
...
@@ -584,17 +584,17 @@ ENABLE_ENTERPRISE_ON_RUNTIME_SWITCH = 'enable_enterprise_on_runtime'
ENTERPRISE_CUSTOMER_COOKIE_NAME
=
'enterprise_customer_uuid'
# END ENTERPRISE APP CONFIGURATION
# DJANGO DEBUG TOOLBAR CONFIGURATION
# http://django-debug-toolbar.readthedocs.org/en/latest/installation.html
if
os
.
environ
.
get
(
'ENABLE_DJANGO_TOOLBAR'
,
False
):
INSTALLED_APPS
+=
[
'debug_toolbar'
,
]
MIDDLEWARE_CLASSES
+=
(
'debug_toolbar.middleware.DebugToolbarMiddleware'
,
)
# END DJANGO DEBUG TOOLBAR CONFIGURATION
#
#
DJANGO DEBUG TOOLBAR CONFIGURATION
#
#
http://django-debug-toolbar.readthedocs.org/en/latest/installation.html
#
if os.environ.get('ENABLE_DJANGO_TOOLBAR', False):
#
INSTALLED_APPS += [
#
'debug_toolbar',
#
]
#
#
MIDDLEWARE_CLASSES += (
#
'debug_toolbar.middleware.DebugToolbarMiddleware',
#
)
#
#
END DJANGO DEBUG TOOLBAR CONFIGURATION
# Determines if events are actually sent to Segment. This should only be set to False for testing purposes.
SEND_SEGMENT_EVENTS
=
True
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