[IMP] data serialization/loading: support timedelta expressions in eval

bzr revid: odo@openerp.com-20100713084057-7rw6k62k49nrhlug
This commit is contained in:
pap (OpenERP)
2010-07-13 10:40:57 +02:00
committed by Olivier Dony
parent a07efee202
commit 6b2e5e14ac
2 changed files with 10 additions and 4 deletions
+2 -1
View File
@@ -27,7 +27,7 @@ import pickle
import re
import sys
from datetime import datetime
from datetime import datetime, timedelta
from lxml import etree
import ir
import misc
@@ -87,6 +87,7 @@ def _eval_xml(self,node, pool, cr, uid, idref, context=None):
idref2 = idref.copy()
idref2['time'] = time
idref2['DateTime'] = datetime
idref2['timedelta'] = timedelta
import release
idref2['version'] = release.major_version
idref2['ref'] = lambda x: self.id_get(cr, False, x)
+8 -3
View File
@@ -1,6 +1,7 @@
# -*- encoding: utf-8 -*-
import types
import time # used to eval time.strftime expressions
from datetime import datetime, timedelta
import logging
import pooler
@@ -116,7 +117,7 @@ class RecordDictWrapper(dict):
if key in self.record:
return self.record[key]
return dict.__getitem__(self, key)
class YamlInterpreter(object):
def __init__(self, cr, module, id_map, mode, filename, noupdate=False):
self.cr = cr
@@ -130,7 +131,11 @@ class YamlInterpreter(object):
self.pool = pooler.get_pool(cr.dbname)
self.uid = 1
self.context = {} # opererp context
self.eval_context = {'ref': self._ref(), '_ref': self._ref(), 'time': time} # added '_ref' so that record['ref'] is possible
self.eval_context = {'ref': self._ref(),
'_ref': self._ref(), # added '_ref' so that record['ref'] is possible
'time': time,
'datetime': datetime,
'timedelta': timedelta}
def _ref(self):
return lambda xml_id: self.get_id(xml_id)
@@ -139,7 +144,7 @@ class YamlInterpreter(object):
model = self.pool.get(model_name)
assert model, "The model %s does not exist." % (model_name,)
return model
def validate_xml_id(self, xml_id):
id = xml_id
if '.' in xml_id: