openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #06233
[Merge] lp:~openerp-dev/openobject-server/trunk-import_data_imp-tfr into lp:openobject-server
tfr (Openerp) has proposed merging lp:~openerp-dev/openobject-server/trunk-import_data_imp-tfr into lp:openobject-server.
Requested reviews:
Olivier Dony (OpenERP) (odo)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-import_data_imp-tfr/+merge/59663
--
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-import_data_imp-tfr/+merge/59663
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/trunk-import_data_imp-tfr.
=== modified file 'openerp/osv/orm.py'
--- openerp/osv/orm.py 2011-04-26 10:54:26 +0000
+++ openerp/osv/orm.py 2011-05-02 14:22:30 +0000
@@ -772,7 +772,13 @@
if line[i] and skip:
return False
continue
-
+
+ #set the mode for m2o, o2m, m2m : xml_id/id/name
+ if len(field) == len(prefix)+1:
+ mode = False
+ else:
+ mode = field[len(prefix)+1]
+
# ID of the record using a XML ID
if field[len(prefix)]=='id':
try:
@@ -796,6 +802,14 @@
newfd = relation_obj.fields_get( cr, uid, context=context )
pos = position
res = []
+
+
+ objects_to_link = line[i].split(config.get('csv_internal_sep'))
+ if len(objects_to_link) > 1:
+ for db_id in objects_to_link:
+ res.append( _get_id(fields_def[field[len(prefix)]]['relation'], db_id, current_module, mode) )
+ res = [(6,0,res)]
+
first = 0
while pos < len(datas):
res2 = process_liness(self, datas, prefix + [field[len(prefix)]], current_module, relation_obj._name, newfd, pos, first)
@@ -805,24 +819,22 @@
nbrmax = max(nbrmax, pos)
warning += w2
first += 1
+
+ if data_res_id2:
+ res.append( (4, data_res_id2) ) #6 or 4 that's the question
+
if (not newrow) or not reduce(lambda x, y: x or y, newrow.values(), 0):
break
+
res.append( (data_res_id2 and 1 or 0, data_res_id2 or 0, newrow) )
+
elif fields_def[field[len(prefix)]]['type']=='many2one':
relation = fields_def[field[len(prefix)]]['relation']
- if len(field) == len(prefix)+1:
- mode = False
- else:
- mode = field[len(prefix)+1]
res = _get_id(relation, line[i], current_module, mode)
elif fields_def[field[len(prefix)]]['type']=='many2many':
relation = fields_def[field[len(prefix)]]['relation']
- if len(field) == len(prefix)+1:
- mode = False
- else:
- mode = field[len(prefix)+1]
# TODO: improve this by using csv.csv_reader
res = []
@@ -848,7 +860,7 @@
warning += [_("Key/value '%s' not found in selection field '%s'") % (line[i], field[len(prefix)])]
else:
res = line[i]
-
+
row[field[len(prefix)]] = res or False
result = (row, nbrmax, warning, data_res_id, xml_id)
@@ -863,7 +875,7 @@
position = 0
while position<len(datas):
res = {}
-
+
(res, position, warning, res_id, xml_id) = \
process_liness(self, datas, [], current_module, self._name, fields_def, position=position)
if len(warning):
Follow ups