File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed
Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -94,19 +94,21 @@ def _ensure_current_session_cart(self) -> db.Key:
9494 current .session .get ().markChanged ()
9595 # Store basket at the user skel, it will be shared over multiple sessions / devices
9696 if user := current .user .get ():
97- db . RunInTransaction ( self ._set_basket_txn , user_key = user ["key" ], basket_key = root_node ["key" ])
97+ self ._set_basket_txn ( user_key = user ["key" ], basket_key = root_node ["key" ])
9898 return self .session ["session_cart_key" ]
9999
100100 def detach_session_cart (self ) -> db .Key :
101101 key = self .session ["session_cart_key" ]
102102 self .session ["session_cart_key" ] = None
103103 current .session .get ().markChanged ()
104104 if user := current .user .get ():
105- db . RunInTransaction ( self ._set_basket_txn , user_key = user ["key" ], basket_key = None )
105+ self ._set_basket_txn ( user_key = user ["key" ], basket_key = None )
106106 return key
107107
108108 @staticmethod
109109 def _set_basket_txn (user_key : db .Key , basket_key : db .Key | None ) -> SkeletonInstance :
110+ if not db .IsInTransaction ():
111+ return db .RunInTransaction (Cart ._set_basket_txn , user_key = user_key , basket_key = basket_key )
110112 user_skel = conf .main_app .vi .user .editSkel ()
111113 user_skel .read (user_key )
112114 user_skel .setBoneValue ("basket" , basket_key )
You can’t perform that action at this time.
0 commit comments