[IMP] tools/convert: cleanup: removed some unused variables, moved imports at top

bzr revid: odo@openerp.com-20100713095605-0sp0agl5tl3678u7
This commit is contained in:
Olivier Dony 2010-07-13 11:56:05 +02:00
parent 8b2d9af044
commit f61cf6facf
1 changed files with 31 additions and 40 deletions

View File

@ -25,17 +25,26 @@ import logging
import os.path import os.path
import pickle import pickle
import re import re
import sys
# for eval context:
import time
import release
try:
import pytz
except:
logging.getLogger("init").warning('could not find pytz library, please install it')
class pytzclass(object):
all_timezones=[]
pytz=pytzclass()
from datetime import datetime, timedelta from datetime import datetime, timedelta
from lxml import etree from lxml import etree
import ir
import misc import misc
import netsvc import netsvc
import osv import osv
import pooler import pooler
from config import config from config import config
from yaml_import import convert_yaml_import
# Import of XML records requires the unsafe eval as well, # Import of XML records requires the unsafe eval as well,
# almost everywhere, which is ok because it supposedly comes # almost everywhere, which is ok because it supposedly comes
@ -58,15 +67,15 @@ def _obj(pool, cr, uid, model_str, context=None):
model = pool.get(model_str) model = pool.get(model_str)
return lambda x: model.browse(cr, uid, x, context=context) return lambda x: model.browse(cr, uid, x, context=context)
def _eval_xml(self,node, pool, cr, uid, idref, context=None): def _eval_xml(self, node, pool, cr, uid, idref, context=None):
if context is None: if context is None:
context = {} context = {}
if node.tag in ('field','value'): if node.tag in ('field','value'):
t = node.get('type','char') t = node.get('type','char')
f_model = node.get('model', '').encode('ascii') f_model = node.get('model', '').encode('utf-8')
if node.get('search'): if node.get('search'):
f_search = node.get("search",'').encode('utf-8') f_search = node.get("search",'').encode('utf-8')
f_use = node.get("use",'id').encode('ascii') f_use = node.get("use",'id').encode('utf-8')
f_name = node.get("name",'').encode('utf-8') f_name = node.get("name",'').encode('utf-8')
q = unsafe_eval(f_search, idref) q = unsafe_eval(f_search, idref)
ids = pool.get(f_model).search(cr, uid, q) ids = pool.get(f_model).search(cr, uid, q)
@ -83,30 +92,21 @@ def _eval_xml(self,node, pool, cr, uid, idref, context=None):
return f_val return f_val
a_eval = node.get('eval','') a_eval = node.get('eval','')
if a_eval: if a_eval:
import time idref2 = dict(idref,
idref2 = idref.copy() time=time,
idref2['time'] = time DateTime=datetime,
idref2['DateTime'] = datetime timedelta=timedelta,
idref2['timedelta'] = timedelta version=release.major_version,
import release ref=lambda x: self.id_get(cr, False, x),
idref2['version'] = release.major_version pytz=pytz)
idref2['ref'] = lambda x: self.id_get(cr, False, x)
if len(f_model): if len(f_model):
idref2['obj'] = _obj(self.pool, cr, uid, f_model, context=context) idref2['obj'] = _obj(self.pool, cr, uid, f_model, context=context)
try:
import pytz
except:
logger = netsvc.Logger()
logger.notifyChannel("init", netsvc.LOG_WARNING, 'could not find pytz library')
class pytzclass(object):
all_timezones=[]
pytz=pytzclass()
idref2['pytz'] = pytz
try: try:
return unsafe_eval(a_eval, idref2) return unsafe_eval(a_eval, idref2)
except Exception, e: except Exception:
logger = logging.getLogger('init') logger = logging.getLogger('init')
logger.warning('couldn\'t eval(%s) for %s in %s, please get back and fix it!' % (a_eval,node.get('name'),context), exc_info=True) logger.warning('could not eval(%s) for %s in %s' % (a_eval, node.get('name'), context), exc_info=True)
return "" return ""
if t == 'xml': if t == 'xml':
def _process(s, idref): def _process(s, idref):
@ -293,7 +293,6 @@ form: module.record_id""" % (xml_id,)
if rec.get('groups'): if rec.get('groups'):
g_names = rec.get('groups','').split(',') g_names = rec.get('groups','').split(',')
groups_value = [] groups_value = []
groups_obj = self.pool.get('res.groups')
for group in g_names: for group in g_names:
if group.startswith('-'): if group.startswith('-'):
group_id = self.id_get(cr, 'res.groups', group[1:]) group_id = self.id_get(cr, 'res.groups', group[1:])
@ -308,7 +307,6 @@ form: module.record_id""" % (xml_id,)
if not rec.get('menu') or eval(rec.get('menu','False')): if not rec.get('menu') or eval(rec.get('menu','False')):
keyword = str(rec.get('keyword', 'client_print_multi')) keyword = str(rec.get('keyword', 'client_print_multi'))
keys = [('action',keyword),('res_model',res['model'])]
value = 'ir.actions.report.xml,'+str(id) value = 'ir.actions.report.xml,'+str(id)
replace = rec.get('replace', True) replace = rec.get('replace', True)
self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, res['name'], [res['model']], value, replace=replace, isobject=True, xml_id=xml_id) self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, res['name'], [res['model']], value, replace=replace, isobject=True, xml_id=xml_id)
@ -338,7 +336,6 @@ form: module.record_id""" % (xml_id,)
if rec.get('groups'): if rec.get('groups'):
g_names = rec.get('groups','').split(',') g_names = rec.get('groups','').split(',')
groups_value = [] groups_value = []
groups_obj = self.pool.get('res.groups')
for group in g_names: for group in g_names:
if group.startswith('-'): if group.startswith('-'):
group_id = self.id_get(cr, 'res.groups', group[1:]) group_id = self.id_get(cr, 'res.groups', group[1:])
@ -353,7 +350,6 @@ form: module.record_id""" % (xml_id,)
# ir_set # ir_set
if (not rec.get('menu') or eval(rec.get('menu','False'))) and id: if (not rec.get('menu') or eval(rec.get('menu','False'))) and id:
keyword = str(rec.get('keyword','') or 'client_action_multi') keyword = str(rec.get('keyword','') or 'client_action_multi')
keys = [('action',keyword),('res_model',model)]
value = 'ir.actions.wizard,'+str(id) value = 'ir.actions.wizard,'+str(id)
replace = rec.get("replace",'') or True replace = rec.get("replace",'') or True
self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, string, [model], value, replace=replace, isobject=True, xml_id=xml_id) self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, string, [model], value, replace=replace, isobject=True, xml_id=xml_id)
@ -376,7 +372,6 @@ form: module.record_id""" % (xml_id,)
# ir_set # ir_set
if (not rec.get('menu') or eval(rec.get('menu','False'))) and id: if (not rec.get('menu') or eval(rec.get('menu','False'))) and id:
keyword = str(rec.get('keyword','') or 'client_action_multi') keyword = str(rec.get('keyword','') or 'client_action_multi')
keys = [('action',keyword)]
value = 'ir.actions.url,'+str(id) value = 'ir.actions.url,'+str(id)
replace = rec.get("replace",'') or True replace = rec.get("replace",'') or True
self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, url, ["ir.actions.url"], value, replace=replace, isobject=True, xml_id=xml_id) self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, url, ["ir.actions.url"], value, replace=replace, isobject=True, xml_id=xml_id)
@ -403,14 +398,14 @@ form: module.record_id""" % (xml_id,)
usage = rec.get('usage','').encode('utf-8') usage = rec.get('usage','').encode('utf-8')
limit = rec.get('limit','').encode('utf-8') limit = rec.get('limit','').encode('utf-8')
auto_refresh = rec.get('auto_refresh','').encode('utf-8') auto_refresh = rec.get('auto_refresh','').encode('utf-8')
# WARNING: don't remove the unused variables and functions below as they are
# used by the unsafe_eval() call.
# TODO: change this into an eval call with locals and globals parameters
uid = self.uid uid = self.uid
# def ref() added because , if context has ref('id') eval wil use this ref
active_id = str("active_id") # for further reference in client/bin/tools/__init__.py active_id = str("active_id") # for further reference in client/bin/tools/__init__.py
def ref(str_id): def ref(str_id):
return self.id_get(cr, None, str_id) return self.id_get(cr, None, str_id)
context = unsafe_eval(context) context = unsafe_eval(context)
# domain = eval(domain) # XXX need to test this line -> uid, active_id, active_ids, ... # domain = eval(domain) # XXX need to test this line -> uid, active_id, active_ids, ...
@ -427,13 +422,11 @@ form: module.record_id""" % (xml_id,)
'usage': usage, 'usage': usage,
'limit': limit, 'limit': limit,
'auto_refresh': auto_refresh, 'auto_refresh': auto_refresh,
# 'groups_id':groups_id,
} }
if rec.get('groups'): if rec.get('groups'):
g_names = rec.get('groups','').split(',') g_names = rec.get('groups','').split(',')
groups_value = [] groups_value = []
groups_obj = self.pool.get('res.groups')
for group in g_names: for group in g_names:
if group.startswith('-'): if group.startswith('-'):
group_id = self.id_get(cr, 'res.groups', group[1:]) group_id = self.id_get(cr, 'res.groups', group[1:])
@ -451,7 +444,6 @@ form: module.record_id""" % (xml_id,)
if src_model: if src_model:
#keyword = 'client_action_relate' #keyword = 'client_action_relate'
keyword = rec.get('key2','').encode('utf-8') or 'client_action_relate' keyword = rec.get('key2','').encode('utf-8') or 'client_action_relate'
keys = [('action', keyword), ('res_model', res_model)]
value = 'ir.actions.act_window,'+str(id) value = 'ir.actions.act_window,'+str(id)
replace = rec.get('replace','') or True replace = rec.get('replace','') or True
self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, xml_id, [src_model], value, replace=replace, isobject=True, xml_id=xml_id) self.pool.get('ir.model.data').ir_set(cr, self.uid, 'action', keyword, xml_id, [src_model], value, replace=replace, isobject=True, xml_id=xml_id)
@ -515,7 +507,7 @@ form: module.record_id""" % (xml_id,)
pid = res[0] pid = res[0]
xml_id = idx==len(m_l)-1 and rec.get('id','').encode('utf8') xml_id = idx==len(m_l)-1 and rec.get('id','').encode('utf8')
try: try:
npid = self.pool.get('ir.model.data')._update_dummy(cr, self.uid, 'ir.ui.menu', self.module, xml_id, idx==len(m_l)-1) self.pool.get('ir.model.data')._update_dummy(cr, self.uid, 'ir.ui.menu', self.module, xml_id, idx==len(m_l)-1)
except: except:
self.logger.notifyChannel('init', netsvc.LOG_ERROR, "module: %s xml_id: %s" % (self.module, xml_id)) self.logger.notifyChannel('init', netsvc.LOG_ERROR, "module: %s xml_id: %s" % (self.module, xml_id))
else: else:
@ -581,7 +573,6 @@ form: module.record_id""" % (xml_id,)
if rec.get('groups'): if rec.get('groups'):
g_names = rec.get('groups','').split(',') g_names = rec.get('groups','').split(',')
groups_value = [] groups_value = []
groups_obj = self.pool.get('res.groups')
for group in g_names: for group in g_names:
if group.startswith('-'): if group.startswith('-'):
group_id = self.id_get(cr, 'res.groups', group[1:]) group_id = self.id_get(cr, 'res.groups', group[1:])
@ -894,7 +885,7 @@ def convert_xml_import(cr, module, xmlfile, idref=None, mode='init', noupdate=Fa
etree.parse(os.path.join(config['root_path'],'import_xml.rng' ))) etree.parse(os.path.join(config['root_path'],'import_xml.rng' )))
try: try:
relaxng.assert_(doc) relaxng.assert_(doc)
except Exception, e: except Exception:
logger = netsvc.Logger() logger = netsvc.Logger()
logger.notifyChannel('init', netsvc.LOG_ERROR, 'The XML file does not fit the required schema !') logger.notifyChannel('init', netsvc.LOG_ERROR, 'The XML file does not fit the required schema !')
logger.notifyChannel('init', netsvc.LOG_ERROR, misc.ustr(relaxng.error_log.last_error)) logger.notifyChannel('init', netsvc.LOG_ERROR, misc.ustr(relaxng.error_log.last_error))