summaryrefslogtreecommitdiff
path: root/bin/tools
diff options
context:
space:
mode:
authorpap (OpenERP) <>2010-07-13 10:40:57 +0200
committerOlivier Dony <odo@openerp.com>2010-07-13 10:40:57 +0200
commit6b2e5e14ac2ddc26ab75bc5390acf8a26dbdff87 (patch)
tree6500dde34a17c1e722b4331dc2ad1a9855399ab7 /bin/tools
parenta07efee20246903d03ce7ff84f2aab4dc34a51b5 (diff)
[IMP] data serialization/loading: support timedelta expressions in eval
bzr revid: odo@openerp.com-20100713084057-7rw6k62k49nrhlug
Diffstat (limited to 'bin/tools')
-rw-r--r--bin/tools/convert.py3
-rw-r--r--bin/tools/yaml_import.py11
2 files changed, 10 insertions, 4 deletions
diff --git a/bin/tools/convert.py b/bin/tools/convert.py
index 6f1a4e5996a..ca017ad6b55 100644
--- a/bin/tools/convert.py
+++ b/bin/tools/convert.py
@@ -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)
diff --git a/bin/tools/yaml_import.py b/bin/tools/yaml_import.py
index 856fe800224..45815bf5795 100644
--- a/bin/tools/yaml_import.py
+++ b/bin/tools/yaml_import.py
@@ -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: