[FIX] removed use of magic methods/attributes, plus some useless code duplication

bzr revid: odo@openerp.com-20100503233516-85tk5wr61ip2agw5
This commit is contained in:
Olivier Dony 2010-05-04 00:35:16 +01:00
parent b1d4680359
commit e05850f9e1
1 changed files with 15 additions and 18 deletions

View File

@ -254,21 +254,20 @@ class YamlInterpreter(object):
b = bool(value)
else:
b = default
return b
return b
def create_osv_memory_record(self, record, fields):
model = self.get_model(record.model)
record_dict = self._create_record(model, fields)
id_new=model.create(self.cr, self.uid, record_dict, context=self.context)
self.id_map[record.id] = int(id_new)
return record_dict
def process_record(self, node):
import osv
record, fields = node.items()[0]
model = self.get_model(record.model)
model_bases = model.__class__.__bases__
if osv.osv.osv_memory in model_bases:
if isinstance(model, osv.osv.osv_memory):
record_dict=self.create_osv_memory_record(record, fields)
else:
self.validate_xml_id(record.id)
@ -281,24 +280,22 @@ class YamlInterpreter(object):
else:
if not self._coerce_bool(record.forcecreate):
return None
model = self.get_model(record.model)
record_dict = self._create_record(model, fields)
self.logger.debug("RECORD_DICT %s" % record_dict)
if not osv.osv.osv_memory in model_bases:
id = self.pool.get('ir.model.data')._update(self.cr, self.uid, record.model, \
self.module, record_dict, record.id, noupdate=self.isnoupdate(record), mode=self.mode)
self.id_map[record.id] = int(id)
if config.get('import_partial', False):
self.cr.commit()
id = self.pool.get('ir.model.data')._update(self.cr, self.uid, record.model, \
self.module, record_dict, record.id, noupdate=self.isnoupdate(record), mode=self.mode)
self.id_map[record.id] = int(id)
if config.get('import_partial'):
self.cr.commit()
def _create_record(self, model, fields):
record_dict = {}
for field_name, expression in fields.items():
field_value = self._eval_field(model, field_name, expression)
record_dict[field_name] = field_value
return record_dict
return record_dict
def process_ref(self, node, column=None):
if node.search:
if node.model:
@ -320,10 +317,10 @@ class YamlInterpreter(object):
else:
value = None
return value
def process_eval(self, node):
return eval(node.expression, self.eval_context)
def _eval_field(self, model, field_name, expression):
# TODO this should be refactored as something like model.get_field() in bin/osv
if field_name in model._columns: