Merge lp:~ajite/openobject-addons/elico-7.0-add-0002 into lp:~openerp-community/openobject-addons/elico-7.0

Status: Merged
Approved by: Eric Caudal - www.elico-corp.com
Approved revision: no longer in the source branch.
Merged at revision: 30
Proposed branch: lp:~ajite/openobject-addons/elico-7.0-add-0002
Merge into: lp:~openerp-community/openobject-addons/elico-7.0
Diff against target: 172 lines (+41/-17)
6 files modified
base_intercompany/__openerp__.py (+1/-1)
base_intercompany/unit/export_synchronizer.py (+15/-6)
base_intercompany/unit/mapper.py (+20/-6)
base_intercompany_sale/__openerp__.py (+1/-1)
base_intercompany_sale/purchase.py (+1/-2)
base_intercompany_sale/sale.py (+3/-1)
To merge this branch: bzr merge lp:~ajite/openobject-addons/elico-7.0-add-0002
Reviewer Review Type Date Requested Status
LIN Yu Pending
Review via email: mp+207113@code.launchpad.net

Description of the change

Made this module compatible with the latest version of the connector (Version > 2.0.1)

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'base_intercompany/__openerp__.py'
--- base_intercompany/__openerp__.py 2014-01-17 22:42:32 +0000
+++ base_intercompany/__openerp__.py 2014-02-19 08:51:05 +0000
@@ -22,7 +22,7 @@
22##############################################################################22##############################################################################
2323
24{'name': 'Base Intercompany',24{'name': 'Base Intercompany',
25 'version': '0.3',25 'version': '0.4',
26 'category': 'Generic Modules',26 'category': 'Generic Modules',
27 'depends': ['connector'],27 'depends': ['connector'],
28 'author': 'Elico Corp',28 'author': 'Elico Corp',
2929
=== modified file 'base_intercompany/unit/export_synchronizer.py'
--- base_intercompany/unit/export_synchronizer.py 2014-01-18 20:51:09 +0000
+++ base_intercompany/unit/export_synchronizer.py 2014-02-19 08:51:05 +0000
@@ -124,26 +124,26 @@
124124
125 nb_records = 0125 nb_records = 0
126 icops_ids = {}126 icops_ids = {}
127
127 for icops in self._get_icops():128 for icops in self._get_icops():
128 backend = self._get_backend_with_permission(icops)129 backend = self._get_backend_with_permission(icops)
129 self._set_icops(icops, backend)130 self._set_icops(icops, backend)
130 try:131 try:
131 self._map_data(fields=fields)132 map_record = self._map_data(fields=fields)
132 except MappingError as e:133 except MappingError as e:
133 continue134 continue
134 if self.icops_ids:135 if self.icops_ids:
135 record = self.mapper.data136 record = self._update_data(map_record, fields=fields)
136 if not record:137 if not record:
137 continue138 continue
138 nb_records += 1139 nb_records += 1
139 self._validate_data(record)140 self._validate_data(record)
140 self._routing(record, fields)141 self._routing(record, fields)
141 else:142 else:
142 record = self.mapper.data_for_create143 record = self._create_data(map_record, fields=fields)
143 if not record:144 if not record:
144 continue145 continue
145 nb_records += 1146 nb_records += 1
146 self._validate_data(record)
147 key = '%s_%s' % (icops.backend_to.id, icops.concept)147 key = '%s_%s' % (icops.backend_to.id, icops.concept)
148 icops_ids[key] = {148 icops_ids[key] = {
149 'id': self._create(record),149 'id': self._create(record),
@@ -183,13 +183,14 @@
183183
184 def _set_icops(self, icops, backend):184 def _set_icops(self, icops, backend):
185 self.mapper._icops = icops185 self.mapper._icops = icops
186 self.mapper._backend_to = backend
186 self.backend_adapter._icops = icops187 self.backend_adapter._icops = icops
187 self.mapper._backend_to = backend
188 self.backend_adapter._backend_to = backend188 self.backend_adapter._backend_to = backend
189189
190 def _create(self, data):190 def _create(self, data):
191 if not self.backend_adapter._icops.on_create:191 if not self.backend_adapter._icops.on_create:
192 raise osv.except_osv('ICOPS Error', 'Can\'t create')192 raise osv.except_osv('ICOPS Error', 'Can\'t create')
193 self._validate_data(data)
193 return self.backend_adapter.create(data)194 return self.backend_adapter.create(data)
194195
195 def _write(self, id, data):196 def _write(self, id, data):
@@ -215,7 +216,15 @@
215216
216 def _map_data(self, fields=None):217 def _map_data(self, fields=None):
217 """ Convert the external record to OpenERP """218 """ Convert the external record to OpenERP """
218 self.mapper.convert(self.binding_record, fields=fields)219 return self.mapper.map_record(self.binding_record)
220
221 def _create_data(self, map_record, fields=None, **kwargs):
222 """ Get the data to pass to :py:meth:`_create` """
223 return map_record.values(for_create=True, fields=fields, **kwargs)
224
225 def _update_data(self, map_record, fields=None, **kwargs):
226 """ Get the data to pass to :py:meth:`_update` """
227 return map_record.values(fields=fields, **kwargs)
219228
220 def _validate_data(self, data):229 def _validate_data(self, data):
221 """ Check if the values to export are correct230 """ Check if the values to export are correct
222231
=== modified file 'base_intercompany/unit/mapper.py'
--- base_intercompany/unit/mapper.py 2014-01-17 22:42:32 +0000
+++ base_intercompany/unit/mapper.py 2014-02-19 08:51:05 +0000
@@ -20,10 +20,27 @@
20# along with this program. If not, see <http://www.gnu.org/licenses/>.20# along with this program. If not, see <http://www.gnu.org/licenses/>.
21#21#
22##############################################################################22##############################################################################
23from openerp.addons.connector.unit.mapper import ExportMapper23from openerp.addons.connector.unit.mapper import (ExportMapper, ExportMapChild)
24
25
26class ICOPSExportMapChild(ExportMapChild):
27 """ :py:class:`MapChild` for the Exports """
28
29 def _child_mapper(self):
30 mapper = self.get_connector_unit_for_model(
31 ExportMapper, self.model._name)
32 mapper._icops = self._icops
33 mapper._backend_to = self._backend_to
34 return mapper
35
36 def format_items(self, items_values):
37 items = super(ICOPSExportMapChild, self).format_items(items_values)
38 return [(5, 0)] + [(0, 0, data) for data in items]
2439
2540
26class ICOPSExportMapper(ExportMapper):41class ICOPSExportMapper(ExportMapper):
42 _map_child_class = ICOPSExportMapChild
43
27 def __init__(self, environment):44 def __init__(self, environment):
28 """45 """
2946
@@ -34,11 +51,8 @@
34 self._icops = None51 self._icops = None
35 self._backend_to = None52 self._backend_to = None
3653
37 def _format_child_rows(self, child_records):54 def _get_map_child_unit(self, model_name):
38 return [(5, 0)] + [(0, 0, data) for data in child_records]55 mapper = super(ICOPSExportMapper, self)._get_map_child_unit(model_name)
39
40 def _init_child_mapper(self, model_name):
41 mapper = super(ICOPSExportMapper, self)._init_child_mapper(model_name)
42 mapper._icops = self._icops56 mapper._icops = self._icops
43 mapper._backend_to = self._backend_to57 mapper._backend_to = self._backend_to
44 return mapper58 return mapper
4559
=== modified file 'base_intercompany_sale/__openerp__.py'
--- base_intercompany_sale/__openerp__.py 2014-01-17 22:42:32 +0000
+++ base_intercompany_sale/__openerp__.py 2014-02-19 08:51:05 +0000
@@ -22,7 +22,7 @@
22##############################################################################22##############################################################################
2323
24{'name': 'Base Intercompany Sale',24{'name': 'Base Intercompany Sale',
25 'version': '0.3',25 'version': '0.4',
26 'category': 'Sales Management',26 'category': 'Sales Management',
27 'depends': ['base_intercompany', 'sale', 'purchase'],27 'depends': ['base_intercompany', 'sale', 'purchase'],
28 'author': 'Elico Corp',28 'author': 'Elico Corp',
2929
=== modified file 'base_intercompany_sale/purchase.py'
--- base_intercompany_sale/purchase.py 2014-01-18 20:51:09 +0000
+++ base_intercompany_sale/purchase.py 2014-02-19 08:51:05 +0000
@@ -266,11 +266,10 @@
266class PurchaseOrderLineExportMapper(ICOPSExportMapper):266class PurchaseOrderLineExportMapper(ICOPSExportMapper):
267 _model_name = 'icops.purchase.order.line'267 _model_name = 'icops.purchase.order.line'
268268
269 direct = [('name', 'name')]
270
271 @mapping269 @mapping
272 def product(self, record):270 def product(self, record):
273 return {271 return {
272 'name': record.name,
274 'product_id': record.product_id.id,273 'product_id': record.product_id.id,
275 'product_uom': record.product_uom.id,274 'product_uom': record.product_uom.id,
276 'product_uom_qty': record.product_qty275 'product_uom_qty': record.product_qty
277276
=== modified file 'base_intercompany_sale/sale.py'
--- base_intercompany_sale/sale.py 2014-01-18 20:51:09 +0000
+++ base_intercompany_sale/sale.py 2014-02-19 08:51:05 +0000
@@ -327,7 +327,9 @@
327class SaleOrderLineExportMapper(ICOPSExportMapper):327class SaleOrderLineExportMapper(ICOPSExportMapper):
328 _model_name = 'icops.sale.order.line'328 _model_name = 'icops.sale.order.line'
329329
330 direct = [('name', 'name')]330 @mapping
331 def name(self, record):
332 return {'name': record.name}
331333
332 def _price(self, record, is_po=False):334 def _price(self, record, is_po=False):
333 if not record.product_id:335 if not record.product_id: