From f6c324302fb2a6490c9c95836887e2c58d684e86 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 21 May 2024 13:39:32 +0700 Subject: api list site --- indoteknik_api/controllers/api_v1/partner.py | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index e61c98c1..1e7220cc 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -7,6 +7,49 @@ class Partner(controller.Controller): _name = 'res.partner' prefix = '/api/v1/' + def get_partner_child_ids(self, partner_id): + def _get_all_child_ids(partner): + child_ids = [partner.id] + for child in partner.child_ids: + child_ids += _get_all_child_ids(child) + return child_ids + + partner = request.env[self._name].search([('id', '=', partner_id)], limit=1) + partner_child_ids = _get_all_child_ids(partner) + + if partner.parent_id: + partner_child_ids += _get_all_child_ids(partner.parent_id) + + return list(set(partner_child_ids)) + + @http.route(prefix + 'partner//list/site', auth='public', methods=['GET', 'OPTIONS']) + @controller.Controller.must_authorized() + def get_list_partner_by_id(self, **kw): + params = self.get_request_params(kw, { + 'id': ['required', 'number'] + }) + + if not params['valid']: + return self.response(code=400, description=params) + + partner_id = params['value']['id'] + + partner_child_ids = self.get_partner_child_ids(partner_id) + + partners = request.env['res.partner'].search([('id', 'in', partner_child_ids)]) + + site_names = set() + for partner in partners: + if partner.site_id: + site_names.add(partner.site_id.name) + + data = { + 'sites': list(site_names) + } + + return self.response(data) + + @http.route(prefix + 'partner//address', auth='public', methods=['GET', 'OPTIONS']) @controller.Controller.must_authorized() def get_partner_address_by_id(self, **kw): -- cgit v1.2.3 From bb0162c4c9ac17cc70605349261107df7604025c Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 22 May 2024 09:34:56 +0700 Subject: change request api list site --- indoteknik_api/controllers/api_v1/partner.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index 1e7220cc..a6e14a19 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -8,19 +8,12 @@ class Partner(controller.Controller): prefix = '/api/v1/' def get_partner_child_ids(self, partner_id): - def _get_all_child_ids(partner): - child_ids = [partner.id] - for child in partner.child_ids: - child_ids += _get_all_child_ids(child) - return child_ids - partner = request.env[self._name].search([('id', '=', partner_id)], limit=1) - partner_child_ids = _get_all_child_ids(partner) - + if not partner.parent_id: + partner_child_ids = [x['id'] for x in partner.child_ids] + [partner.id] if partner.parent_id: - partner_child_ids += _get_all_child_ids(partner.parent_id) - - return list(set(partner_child_ids)) + partner_child_ids = [x['id'] for x in partner.parent_id.child_ids] + return partner_child_ids @http.route(prefix + 'partner//list/site', auth='public', methods=['GET', 'OPTIONS']) @controller.Controller.must_authorized() -- cgit v1.2.3 From 205c6b5989084abcb93056cce3583757b0c5b0f1 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 22 May 2024 11:27:09 +0700 Subject: fix bug api list site --- indoteknik_api/controllers/api_v1/sale_order.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 8d3d0218..bbc69f06 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -80,11 +80,11 @@ class SaleOrder(controller.Controller): ('partner_purchase_order_name', 'ilike', '%' + name + '%') ] - # if params['value']['site']: - # site = params['value']['site'].replace(' ', '%') - # domain += [ - # ('partner_id.site_id.name', 'ilike', '%' + site + '%') - # ] + if params['value']['site']: + site = params['value']['site'].replace(' ', '%') + domain += [ + ('partner_id.site_id.name', 'ilike', '%' + site + '%') + ] sale_orders = request.env['sale.order'].search( domain, offset=offset, limit=limit) -- cgit v1.2.3 From abd7dd1ecc9246b1924dcf70b3ed41c964f3746f Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 22 May 2024 13:15:12 +0700 Subject: fix api --- indoteknik_api/controllers/api_v1/sale_order.py | 1 + 1 file changed, 1 insertion(+) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index bbc69f06..948ecd03 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -52,6 +52,7 @@ class SaleOrder(controller.Controller): params = self.get_request_params(kw, { 'partner_id': ['number'], 'name': [], + 'site': [], 'limit': ['default:0', 'number'], 'offset': ['default:0', 'number'], 'context': [] -- cgit v1.2.3