Skip to content
This repository was archived by the owner on Apr 28, 2022. It is now read-only.

Commit a563008

Browse files
committed
Merge branch '12.0-T01206-redis-session-storage-fix-pc' into '12.0'
Make the config_session store json-serializable / string key vs int & search... See merge request pledra/odoo-product-configurator!89
2 parents d3cbebb + bd73d4a commit a563008

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

product_configurator/models/product_config.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -911,10 +911,14 @@ def get_variant_vals(self, value_ids=None, custom_vals=None, **kwargs):
911911

912912
@api.multi
913913
def get_session_search_domain(self, product_tmpl_id, state='draft',
914-
parent_id=None):
914+
parent_id=None, user_id=None):
915+
916+
if not user_id:
917+
user_id = self.env.uid
918+
915919
domain = [
916920
('product_tmpl_id', '=', product_tmpl_id),
917-
('user_id', '=', self.env.uid),
921+
('user_id', '=', user_id),
918922
('state', '=', state),
919923
]
920924
if parent_id:
@@ -1422,10 +1426,11 @@ def search_variant(
14221426
return products
14231427

14241428
@api.multi
1425-
def search_session(self, product_tmpl_id, parent_id=None):
1429+
def search_session(self, product_tmpl_id, parent_id=None, user_id=None):
14261430
domain = self.get_session_search_domain(
14271431
product_tmpl_id=product_tmpl_id,
1428-
parent_id=parent_id
1432+
parent_id=parent_id,
1433+
user_id=user_id
14291434
)
14301435
session = self.search(domain, order='create_date desc', limit=1)
14311436
return session
@@ -1436,7 +1441,8 @@ def create_get_session(self, product_tmpl_id, parent_id=None,
14361441
if not force_create:
14371442
session = self.search_session(
14381443
product_tmpl_id=product_tmpl_id,
1439-
parent_id=parent_id
1444+
parent_id=parent_id,
1445+
user_id=user_id,
14401446
)
14411447
if session:
14421448
return session

website_product_configurator/controllers/main.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def get_config_session(self, product_tmpl_id):
3030
{}
3131
)
3232
is_public_user = request.env.user.has_group('base.group_public')
33-
cfg_session_id = product_config_sessions.get(product_tmpl_id.id)
33+
cfg_session_id = product_config_sessions.get(str(product_tmpl_id.id))
3434
if cfg_session_id:
3535
cfg_session = cfg_session_obj.browse(int(cfg_session_id))
3636

@@ -42,7 +42,7 @@ def get_config_session(self, product_tmpl_id):
4242
user_id=request.env.user.id
4343
)
4444
product_config_sessions.update({
45-
product_tmpl_id.id: cfg_session.id
45+
str(product_tmpl_id.id): cfg_session.id
4646
})
4747
request.session['product_config_session'] = product_config_sessions
4848

@@ -513,12 +513,12 @@ def cfg_session(self, product_id, **post):
513513
key=lambda obj: obj.attribute_id.sequence
514514
)
515515
pricelist = get_pricelist()
516-
product_config_session = request.session.get('product_config_session')
517-
if (product_config_session and
518-
product_config_session.get(product_tmpl_id.id)):
519-
516+
product_config_session = request.session.get(
517+
'product_config_session', {}
518+
)
519+
if product_config_session.get(str(product_tmpl_id.id)):
520520
# Bizzappdev end code
521-
del product_config_session[product_tmpl_id.id]
521+
del product_config_session[str(product_tmpl_id.id)]
522522
request.session['product_config_session'] = product_config_session
523523
values = {
524524
'product_id': product_id,

0 commit comments

Comments
 (0)