diff --git a/magentoerpconnect/consumer.py b/magentoerpconnect/consumer.py index fe040c0a2..2f16282e9 100644 --- a/magentoerpconnect/consumer.py +++ b/magentoerpconnect/consumer.py @@ -52,6 +52,19 @@ def delay_export_all_bindings(session, model_name, record_id, vals): fields=fields) +def delay_unlink_all_bindings(session, model_name, record_id): + """ Delay jobs which delete all the bindings of a record. + + In this case, it is called on records of normal models and will delay + the deletion for all the bindings. + """ + if session.context.get('connector_no_export'): + return + record = session.env[model_name].browse(record_id) + for binding in record.magento_bind_ids: + delay_unlink(session, binding._model._name, binding.id) + + def delay_unlink(session, model_name, record_id): """ Delay a job which delete a record on Magento. diff --git a/magentoerpconnect/magento_model.py b/magentoerpconnect/magento_model.py index c447b01fc..ff6d5fd52 100644 --- a/magentoerpconnect/magento_model.py +++ b/magentoerpconnect/magento_model.py @@ -66,6 +66,7 @@ def _get_stock_field_id(self): limit=1) return field + tax_imported = fields.Boolean(default=False) version = fields.Selection(selection='select_versions', required=True) location = fields.Char( string='Location', @@ -201,16 +202,31 @@ def check_magento_structure(self): @api.multi def synchronize_metadata(self): + mag_tax_class_obj = self.env['magento.tax.class'] + default_tax_list = [ + {'name': 'default', 'magento_id': 1}, + {'name': 'Taxable Goods', 'magento_id': 2}, + {'name': 'Shipping', 'magento_id': 4}, + ] session = ConnectorSession(self.env.cr, self.env.uid, context=self.env.context) for backend in self: for model in ('magento.website', 'magento.store', - 'magento.storeview'): + 'magento.storeview', + 'magento.attribute.set'): # import directly, do not delay because this # is a fast operation, a direct return is fine # and it is simpler to import them sequentially import_batch(session, model, backend.id) + + # create magento.tax.class records as we don't import them + if not backend.tax_imported: + for tax_dict in default_tax_list: + tax_dict.update(backend_id=backend.id) + mag_tax_class_obj.create(tax_dict) + backend.tax_imported = True + return True @api.multi diff --git a/magentoerpconnect/magento_model_view.xml b/magentoerpconnect/magento_model_view.xml index 8868c90b7..5579b7b25 100644 --- a/magentoerpconnect/magento_model_view.xml +++ b/magentoerpconnect/magento_model_view.xml @@ -65,6 +65,12 @@ of the new records to review in the menu 'Connectors > Checkpoint'.

+ +