From 1fdaf7cb8f9ad4a2b47ec1e2f9c6e0d05a180a69 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 26 Nov 2019 11:06:38 -0800 Subject: [PATCH] IMP `connector_opencart` Run `queue.job` in company related to Opencart Store. Additionally, bump all related submodules. --- connector_opencart/__manifest__.py | 1 + .../models/sale_order/common.py | 5 ++-- .../models/sale_order/importer.py | 30 +++++++++---------- .../views/opencart_backend_views.xml | 2 +- external/hibou-oca/bank-payment | 2 +- external/hibou-oca/connector | 2 +- external/hibou-oca/connector-ecommerce | 2 +- external/hibou-oca/product-attribute | 2 +- external/hibou-oca/queue | 2 +- external/hibou-oca/sale-workflow | 2 +- external/hibou-oca/server-tools | 2 +- external/hibou-oca/stock-logistics-warehouse | 2 +- 12 files changed, 27 insertions(+), 27 deletions(-) diff --git a/connector_opencart/__manifest__.py b/connector_opencart/__manifest__.py index 1816042e..ce265249 100644 --- a/connector_opencart/__manifest__.py +++ b/connector_opencart/__manifest__.py @@ -11,6 +11,7 @@ 'delivery', 'sale_stock', 'connector_ecommerce', + 'base_technical_user', ], 'author': 'Hibou Corp.', 'license': 'AGPL-3', diff --git a/connector_opencart/models/sale_order/common.py b/connector_opencart/models/sale_order/common.py index 48d0635a..2ad4f606 100644 --- a/connector_opencart/models/sale_order/common.py +++ b/connector_opencart/models/sale_order/common.py @@ -1,8 +1,6 @@ # © 2019 Hibou Corp. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -import logging - import odoo.addons.decimal_precision as dp from odoo import models, fields, api @@ -106,7 +104,8 @@ class SaleOrderAdapter(Component): return [] orders = orders_response['data'] - return map(lambda o: o['order_id'], orders) + # Note that `store_id is None` is checked as it may not be in the output. + return map(lambda o: (o['order_id'], o.get('store_id', None)), orders) def read(self, id): api_instance = self.api_instance diff --git a/connector_opencart/models/sale_order/importer.py b/connector_opencart/models/sale_order/importer.py index 507c8e3b..a1a8bf9d 100644 --- a/connector_opencart/models/sale_order/importer.py +++ b/connector_opencart/models/sale_order/importer.py @@ -1,18 +1,12 @@ # © 2019 Hibou Corp. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -import logging - -from datetime import datetime, timedelta from copy import deepcopy, copy from odoo import fields, _ from odoo.addons.component.core import Component from odoo.addons.connector.components.mapper import mapping from odoo.exceptions import ValidationError -from odoo.addons.queue_job.exception import NothingToDoJob, FailedJobError - -_logger = logging.getLogger(__name__) class SaleOrderBatchImporter(Component): @@ -20,12 +14,22 @@ class SaleOrderBatchImporter(Component): _inherit = 'opencart.delayed.batch.importer' _apply_on = 'opencart.sale.order' - def _import_record(self, external_id, job_options=None, **kwargs): + def _import_record(self, external_id, store_id, job_options=None, **kwargs): if not job_options: job_options = { 'max_retries': 0, 'priority': 5, } + if store_id is not None: + store_binder = self.binder_for('opencart.store') + store = store_binder.to_internal(store_id) + user = store.sudo().warehouse_id.company_id.user_tech_id + if user and user != self.env.user: + # Note that this is a component, which has an env through it's 'colletion' + # however, when importing the 'model' is actually what runs the delayed job + env = self.env(user=user) + self.collection.env = env + self.model.env = env return super(SaleOrderBatchImporter, self)._import_record( external_id, job_options=job_options) @@ -34,10 +38,10 @@ class SaleOrderBatchImporter(Component): if filters is None: filters = {} external_ids = list(self.backend_adapter.search(filters)) - for external_id in external_ids: - self._import_record(external_id) + for ids in external_ids: + self._import_record(ids[0], ids[1]) if external_ids: - last_id = list(sorted(external_ids))[-1] + last_id = list(sorted(external_ids, key=lambda i: i[0]))[-1][0] self.backend_record.import_orders_after_id = last_id @@ -316,9 +320,6 @@ class SaleOrderImporter(Component): if binding.fiscal_position_id: binding.odoo_id._compute_tax_id() - # if binding.backend_id.acknowledge_order == 'order_create': - # binding.with_delay().acknowledge_order(binding.backend_id, binding.external_id) - return binding def _import_dependencies(self): @@ -362,5 +363,4 @@ class SaleOrderLineImportMapper(Component): if not product: # we could use a record like (0, 0, values) product = self.env['product.product'].create(self._product_values(record)) - - return {'product_id': product.id} + return {'product_id': product.id, 'product_uom': product.uom_id.id} diff --git a/connector_opencart/views/opencart_backend_views.xml b/connector_opencart/views/opencart_backend_views.xml index 579ddb20..360b9315 100644 --- a/connector_opencart/views/opencart_backend_views.xml +++ b/connector_opencart/views/opencart_backend_views.xml @@ -143,8 +143,8 @@ opencart.store - + diff --git a/external/hibou-oca/bank-payment b/external/hibou-oca/bank-payment index 4747a115..9e3bd2f6 160000 --- a/external/hibou-oca/bank-payment +++ b/external/hibou-oca/bank-payment @@ -1 +1 @@ -Subproject commit 4747a1157954be173ad0932fcb3b2a074329f783 +Subproject commit 9e3bd2f6c101445fdad791cc39d425731bbc7b14 diff --git a/external/hibou-oca/connector b/external/hibou-oca/connector index e66413e4..fdd035ae 160000 --- a/external/hibou-oca/connector +++ b/external/hibou-oca/connector @@ -1 +1 @@ -Subproject commit e66413e41ec3df152ee523630cf2dbc381820b73 +Subproject commit fdd035ae4e56cd3721102515827dfe0b52effeef diff --git a/external/hibou-oca/connector-ecommerce b/external/hibou-oca/connector-ecommerce index de374703..41674c2f 160000 --- a/external/hibou-oca/connector-ecommerce +++ b/external/hibou-oca/connector-ecommerce @@ -1 +1 @@ -Subproject commit de374703f227dc1dfd6ef72f2385ac545afe036d +Subproject commit 41674c2f4681ea7b6713d8273b44c0c9b816116a diff --git a/external/hibou-oca/product-attribute b/external/hibou-oca/product-attribute index 8cb735d7..65a98907 160000 --- a/external/hibou-oca/product-attribute +++ b/external/hibou-oca/product-attribute @@ -1 +1 @@ -Subproject commit 8cb735d736f38e9858a6be292ff71e823cdcf7de +Subproject commit 65a989073cef59e444e6dca7a249c31b5c7844a1 diff --git a/external/hibou-oca/queue b/external/hibou-oca/queue index d708db07..9a5084bd 160000 --- a/external/hibou-oca/queue +++ b/external/hibou-oca/queue @@ -1 +1 @@ -Subproject commit d708db07aea2def4a45f5e0a5f0ef66ee428b2b6 +Subproject commit 9a5084bdc3fbf1cbc7d3ec5cff622ab5bf600489 diff --git a/external/hibou-oca/sale-workflow b/external/hibou-oca/sale-workflow index 0dc78a7d..82a1cd2c 160000 --- a/external/hibou-oca/sale-workflow +++ b/external/hibou-oca/sale-workflow @@ -1 +1 @@ -Subproject commit 0dc78a7dea16381ba20df2d0261599bb6744a6de +Subproject commit 82a1cd2ca9318a281781e330e564f412242de605 diff --git a/external/hibou-oca/server-tools b/external/hibou-oca/server-tools index 4461b174..b138e0a7 160000 --- a/external/hibou-oca/server-tools +++ b/external/hibou-oca/server-tools @@ -1 +1 @@ -Subproject commit 4461b174e016bfce91dc533e51a3f6c6c09925c3 +Subproject commit b138e0a74096615c6d760209afadd9f1ecc03f9e diff --git a/external/hibou-oca/stock-logistics-warehouse b/external/hibou-oca/stock-logistics-warehouse index de275910..1389db39 160000 --- a/external/hibou-oca/stock-logistics-warehouse +++ b/external/hibou-oca/stock-logistics-warehouse @@ -1 +1 @@ -Subproject commit de2759105e4bfbf539e6debdb1935b667e1bc06a +Subproject commit 1389db39dd259d9cf7fc8039ec970f1c4932be8e