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
1=== modified file 'base_intercompany/__openerp__.py'
2--- base_intercompany/__openerp__.py 2014-01-17 22:42:32 +0000
3+++ base_intercompany/__openerp__.py 2014-02-19 08:51:05 +0000
4@@ -22,7 +22,7 @@
5 ##############################################################################
6
7 {'name': 'Base Intercompany',
8- 'version': '0.3',
9+ 'version': '0.4',
10 'category': 'Generic Modules',
11 'depends': ['connector'],
12 'author': 'Elico Corp',
13
14=== modified file 'base_intercompany/unit/export_synchronizer.py'
15--- base_intercompany/unit/export_synchronizer.py 2014-01-18 20:51:09 +0000
16+++ base_intercompany/unit/export_synchronizer.py 2014-02-19 08:51:05 +0000
17@@ -124,26 +124,26 @@
18
19 nb_records = 0
20 icops_ids = {}
21+
22 for icops in self._get_icops():
23 backend = self._get_backend_with_permission(icops)
24 self._set_icops(icops, backend)
25 try:
26- self._map_data(fields=fields)
27+ map_record = self._map_data(fields=fields)
28 except MappingError as e:
29 continue
30 if self.icops_ids:
31- record = self.mapper.data
32+ record = self._update_data(map_record, fields=fields)
33 if not record:
34 continue
35 nb_records += 1
36 self._validate_data(record)
37 self._routing(record, fields)
38 else:
39- record = self.mapper.data_for_create
40+ record = self._create_data(map_record, fields=fields)
41 if not record:
42 continue
43 nb_records += 1
44- self._validate_data(record)
45 key = '%s_%s' % (icops.backend_to.id, icops.concept)
46 icops_ids[key] = {
47 'id': self._create(record),
48@@ -183,13 +183,14 @@
49
50 def _set_icops(self, icops, backend):
51 self.mapper._icops = icops
52+ self.mapper._backend_to = backend
53 self.backend_adapter._icops = icops
54- self.mapper._backend_to = backend
55 self.backend_adapter._backend_to = backend
56
57 def _create(self, data):
58 if not self.backend_adapter._icops.on_create:
59 raise osv.except_osv('ICOPS Error', 'Can\'t create')
60+ self._validate_data(data)
61 return self.backend_adapter.create(data)
62
63 def _write(self, id, data):
64@@ -215,7 +216,15 @@
65
66 def _map_data(self, fields=None):
67 """ Convert the external record to OpenERP """
68- self.mapper.convert(self.binding_record, fields=fields)
69+ return self.mapper.map_record(self.binding_record)
70+
71+ def _create_data(self, map_record, fields=None, **kwargs):
72+ """ Get the data to pass to :py:meth:`_create` """
73+ return map_record.values(for_create=True, fields=fields, **kwargs)
74+
75+ def _update_data(self, map_record, fields=None, **kwargs):
76+ """ Get the data to pass to :py:meth:`_update` """
77+ return map_record.values(fields=fields, **kwargs)
78
79 def _validate_data(self, data):
80 """ Check if the values to export are correct
81
82=== modified file 'base_intercompany/unit/mapper.py'
83--- base_intercompany/unit/mapper.py 2014-01-17 22:42:32 +0000
84+++ base_intercompany/unit/mapper.py 2014-02-19 08:51:05 +0000
85@@ -20,10 +20,27 @@
86 # along with this program. If not, see <http://www.gnu.org/licenses/>.
87 #
88 ##############################################################################
89-from openerp.addons.connector.unit.mapper import ExportMapper
90+from openerp.addons.connector.unit.mapper import (ExportMapper, ExportMapChild)
91+
92+
93+class ICOPSExportMapChild(ExportMapChild):
94+ """ :py:class:`MapChild` for the Exports """
95+
96+ def _child_mapper(self):
97+ mapper = self.get_connector_unit_for_model(
98+ ExportMapper, self.model._name)
99+ mapper._icops = self._icops
100+ mapper._backend_to = self._backend_to
101+ return mapper
102+
103+ def format_items(self, items_values):
104+ items = super(ICOPSExportMapChild, self).format_items(items_values)
105+ return [(5, 0)] + [(0, 0, data) for data in items]
106
107
108 class ICOPSExportMapper(ExportMapper):
109+ _map_child_class = ICOPSExportMapChild
110+
111 def __init__(self, environment):
112 """
113
114@@ -34,11 +51,8 @@
115 self._icops = None
116 self._backend_to = None
117
118- def _format_child_rows(self, child_records):
119- return [(5, 0)] + [(0, 0, data) for data in child_records]
120-
121- def _init_child_mapper(self, model_name):
122- mapper = super(ICOPSExportMapper, self)._init_child_mapper(model_name)
123+ def _get_map_child_unit(self, model_name):
124+ mapper = super(ICOPSExportMapper, self)._get_map_child_unit(model_name)
125 mapper._icops = self._icops
126 mapper._backend_to = self._backend_to
127 return mapper
128
129=== modified file 'base_intercompany_sale/__openerp__.py'
130--- base_intercompany_sale/__openerp__.py 2014-01-17 22:42:32 +0000
131+++ base_intercompany_sale/__openerp__.py 2014-02-19 08:51:05 +0000
132@@ -22,7 +22,7 @@
133 ##############################################################################
134
135 {'name': 'Base Intercompany Sale',
136- 'version': '0.3',
137+ 'version': '0.4',
138 'category': 'Sales Management',
139 'depends': ['base_intercompany', 'sale', 'purchase'],
140 'author': 'Elico Corp',
141
142=== modified file 'base_intercompany_sale/purchase.py'
143--- base_intercompany_sale/purchase.py 2014-01-18 20:51:09 +0000
144+++ base_intercompany_sale/purchase.py 2014-02-19 08:51:05 +0000
145@@ -266,11 +266,10 @@
146 class PurchaseOrderLineExportMapper(ICOPSExportMapper):
147 _model_name = 'icops.purchase.order.line'
148
149- direct = [('name', 'name')]
150-
151 @mapping
152 def product(self, record):
153 return {
154+ 'name': record.name,
155 'product_id': record.product_id.id,
156 'product_uom': record.product_uom.id,
157 'product_uom_qty': record.product_qty
158
159=== modified file 'base_intercompany_sale/sale.py'
160--- base_intercompany_sale/sale.py 2014-01-18 20:51:09 +0000
161+++ base_intercompany_sale/sale.py 2014-02-19 08:51:05 +0000
162@@ -327,7 +327,9 @@
163 class SaleOrderLineExportMapper(ICOPSExportMapper):
164 _model_name = 'icops.sale.order.line'
165
166- direct = [('name', 'name')]
167+ @mapping
168+ def name(self, record):
169+ return {'name': record.name}
170
171 def _price(self, record, is_po=False):
172 if not record.product_id: