diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-10-05 10:07:40 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-10-05 10:07:40 +0700 |
| commit | c452ac57ec1266452d04bbf4c38191aaa6630186 (patch) | |
| tree | 9fa8cf32c6d7ffb40a34877ef962b16f6cbfd499 /indoteknik_api/controllers | |
| parent | b2c16c315455f5f1f7cc60c474435c6b9e965e40 (diff) | |
Add price context for get product price API
Diffstat (limited to 'indoteknik_api/controllers')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/cart.py | 2 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 2 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/voucher.py | 2 | ||||
| -rw-r--r-- | indoteknik_api/controllers/controller.py | 12 |
4 files changed, 12 insertions, 6 deletions
diff --git a/indoteknik_api/controllers/api_v1/cart.py b/indoteknik_api/controllers/api_v1/cart.py index cb0f5a99..88fa9f88 100644 --- a/indoteknik_api/controllers/api_v1/cart.py +++ b/indoteknik_api/controllers/api_v1/cart.py @@ -18,7 +18,7 @@ class Cart(controller.Controller): carts = user_cart.search(query, limit=limit, offset=offset, order='create_date desc') data = { 'product_total': user_cart.search_count(query), - 'products': carts.get_products() + 'products': carts.with_context(price_for="web").get_products() } return self.response(data) diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index ef4c2688..9668b63e 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -236,7 +236,7 @@ class SaleOrder(controller.Controller): voucher_code = kw.get('voucher') source = kw.get('source') voucher = request.env['voucher'].search([('code', '=', voucher_code)], limit=1) - result = cart.get_user_checkout(user_id, voucher, source) + result = cart.with_context(price_for="web").get_user_checkout(user_id, voucher, source) return self.response(result) @http.route(PREFIX_PARTNER + 'sale_order/checkout', auth='public', method=['POST', 'OPTIONS'], csrf=False) diff --git a/indoteknik_api/controllers/api_v1/voucher.py b/indoteknik_api/controllers/api_v1/voucher.py index dfe9ceba..3c056ecd 100644 --- a/indoteknik_api/controllers/api_v1/voucher.py +++ b/indoteknik_api/controllers/api_v1/voucher.py @@ -20,7 +20,7 @@ class Voucher(controller.Controller): if code: visibility.append('private') parameter += [('code', '=', code)] - user_pricelist = request.env.user_pricelist + user_pricelist = request.env.context.get('user_pricelist') if user_pricelist: parameter += [('excl_pricelist_ids', 'not in', [user_pricelist.id])] diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py index 08b3084e..12305d92 100644 --- a/indoteknik_api/controllers/controller.py +++ b/indoteknik_api/controllers/controller.py @@ -21,9 +21,12 @@ class Controller(http.Controller): def inner_wrapper(*args, **kwargs): self = args[0] auth = self.authenticate() - request.env.user_pricelist = self.user_pricelist() + if not auth: return self.unauthorized_response() + + self.set_user_pricelist_ctx() + if private: auth_key = int(auth[private_key]) param_key = int(kwargs.get(private_key, -1)) @@ -56,13 +59,16 @@ class Controller(http.Controller): result = user_token return result - def user_pricelist(self): + def set_user_pricelist_ctx(self): user_token = self.authenticate() pricelist = request.env['product.pricelist'].new() if isinstance(user_token, dict): partner = request.env['res.partner'].browse(user_token['partner_id']) if partner: pricelist = partner.property_product_pricelist - return pricelist + + context = request.env.context.copy() + context.update({'user_pricelist': pricelist}) + request.env.context = context def get_request_params(self, kw, queries): result = { |
