From c639abd97e499987e059569941260888bb13825a Mon Sep 17 00:00:00 2001 From: Olivier Laurent Date: Fri, 24 Jul 2009 11:36:50 +0200 Subject: [PATCH 1/6] [FIX] sql expression: in search, add the time part to datetime field when it's not present bzr revid: olt@tinyerp.com-20090724093650-ml4nc7vgfepq9wos --- bin/osv/expression.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bin/osv/expression.py b/bin/osv/expression.py index b849e77bd08..5c97cdec768 100644 --- a/bin/osv/expression.py +++ b/bin/osv/expression.py @@ -198,10 +198,18 @@ class expression(object): self.__exp[i] = (left, 'in', right) else: # other field type + + # add the time part to datetime field when it's not there: + if field._type == 'datetime' and len(self.__exp[i][2]) == 10: + if operator in ('>', '>='): + self.__exp[i][2] += ' 00:00:00' + elif operator in ('<', '<='): + self.__exp[i][2] += ' 23:59:59' + if field.translate: if operator in ('like', 'ilike', 'not like', 'not ilike'): right = '%%%s%%' % right - + operator = operator == '=like' and 'like' or operator query1 = '( SELECT res_id' \ @@ -224,7 +232,7 @@ class expression(object): ' SELECT id' \ ' FROM "' + working_table._table + '"' \ ' WHERE "' + left + '" ' + operator + instr + ")" - + query2 = [working_table._name + ',' + left, context.get('lang', False) or 'en_US', 'model', From fb82bec3511b591c7a3a002bc7e94fe8a4f20475 Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Mon, 27 Jul 2009 12:57:51 +0530 Subject: [PATCH 2/6] [FIX] Corrected bug of expression calculation in previous commit bzr revid: jvo@tinyerp.com-20090727072751-kk735cvem4vrx3wg --- bin/osv/expression.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/osv/expression.py b/bin/osv/expression.py index 5c97cdec768..feac4693d3a 100644 --- a/bin/osv/expression.py +++ b/bin/osv/expression.py @@ -198,9 +198,8 @@ class expression(object): self.__exp[i] = (left, 'in', right) else: # other field type - # add the time part to datetime field when it's not there: - if field._type == 'datetime' and len(self.__exp[i][2]) == 10: + if field._type == 'datetime' and self.__exp[i][2] and len(self.__exp[i][2]) == 10: if operator in ('>', '>='): self.__exp[i][2] += ' 00:00:00' elif operator in ('<', '<='): From 48aadedd0ebfe61219776b556a4eeb2760623461 Mon Sep 17 00:00:00 2001 From: "Ysa(OpenERP)" <> Date: Tue, 28 Jul 2009 13:15:36 +0530 Subject: [PATCH 3/6] [FIX] Translation : Text with prefix '_' from py files included for exports. lp bug: https://launchpad.net/bugs/376945 fixed bzr revid: jvo@tinyerp.com-20090728074536-uv243gqp1tol3jdq --- bin/tools/translate.py | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/bin/tools/translate.py b/bin/tools/translate.py index 0fb0bd8589c..2e46f6ecfce 100644 --- a/bin/tools/translate.py +++ b/bin/tools/translate.py @@ -545,20 +545,28 @@ def trans_generate(lang, modules, dbname=None): modobj = pool.get('ir.module.module') installed_modids = modobj.search(cr, uid, [('state', '=', 'installed')]) installed_modules = map(lambda m: m['name'], modobj.read(cr, uid, installed_modids, ['name'])) + + if tools.config['root_path'] in tools.config['addons_path'] : + path_list = [tools.config['root_path']] + else : + path_list = [tools.config['root_path'],tools.config['addons_path']] - for root, dirs, files in tools.osutil.walksymlinks(tools.config['root_path']): - for fname in fnmatch.filter(files, '*.py'): - fabsolutepath = join(root, fname) - frelativepath = fabsolutepath[len(tools.config['root_path'])+1:] - module = get_module_from_path(frelativepath) - is_mod_installed = module in installed_modules - if (('all' in modules) or (module in modules)) and is_mod_installed: - code_string = tools.file_open(fabsolutepath, subdir='').read() - iter = re.finditer( - '[^a-zA-Z0-9_]_\([\s]*["\'](.+?)["\'][\s]*\)', - code_string, re.M) - for i in iter: - push_translation(module, 'code', frelativepath, 0, encode(i.group(1))) + for path in path_list: + for root, dirs, files in tools.osutil.walksymlinks(path): + for fname in fnmatch.filter(files, '*.py'): + fabsolutepath = join(root, fname) + frelativepath = fabsolutepath[len(path):] + module = get_module_from_path(frelativepath) + is_mod_installed = module in installed_modules + if (('all' in modules) or (module in modules)) and is_mod_installed: + code_string = tools.file_open(fabsolutepath, subdir='').read() + iter = re.finditer('[^a-zA-Z0-9_]_\([\s]*["\'](.+?)["\'][\s]*\)', + code_string, re.S) + + if module in installed_modules : + frelativepath =str("addons"+frelativepath) + for i in iter: + push_translation(module, 'code', frelativepath, 0, encode(i.group(1))) out = [["module","type","name","res_id","src","value"]] # header From 0d6d1c4c6d6df5b4e43a8f035f26744b781390e6 Mon Sep 17 00:00:00 2001 From: "AME(tiny/Axelor)" <> Date: Tue, 28 Jul 2009 20:01:31 +0530 Subject: [PATCH 4/6] [FIX] ir_model : context key deletion lp bug: https://launchpad.net/bugs/404733 fixed bzr revid: jvo@tinyerp.com-20090728143131-i6oozfsb1bznj6r0 --- bin/addons/base/ir/ir_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 7fc27f6cc78..1e718144187 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -73,7 +73,7 @@ class ir_model(osv.osv): def write(self, cr, user, ids, vals, context=None): if context: - del context['__last_update'] + context.pop('__last_update', None) return super(ir_model,self).write(cr, user, ids, vals, context) def create(self, cr, user, vals, context=None): From ed3234e3c09304515a859a0a38301f20dbef0d69 Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Wed, 29 Jul 2009 19:06:49 +0530 Subject: [PATCH 5/6] [FIX] Logger notification improved bzr revid: jvo@tinyerp.com-20090729133649-clmwpd8wfbrrxbsl --- bin/addons/base/ir/ir_ui_view.py | 2 +- bin/tools/convert.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/addons/base/ir/ir_ui_view.py b/bin/addons/base/ir/ir_ui_view.py index b1e15b34cf4..5c4c50fae47 100644 --- a/bin/addons/base/ir/ir_ui_view.py +++ b/bin/addons/base/ir/ir_ui_view.py @@ -35,7 +35,7 @@ def _check_xml(self, cr, uid, ids, context={}): if not relaxng.validate(eview): logger = netsvc.Logger() logger.notifyChannel('init', netsvc.LOG_ERROR, 'The view does not fit the required schema !') - logger.notifyChannel('init', netsvc.LOG_ERROR, relaxng.error_log.last_error) + logger.notifyChannel('init', netsvc.LOG_ERROR, tools.ustr(relaxng.error_log.last_error)) return False return True diff --git a/bin/tools/convert.py b/bin/tools/convert.py index 220b272f4dd..614e271061e 100644 --- a/bin/tools/convert.py +++ b/bin/tools/convert.py @@ -876,7 +876,7 @@ def convert_xml_import(cr, module, xmlfile, idref=None, mode='init', noupdate=Fa except Exception, e: logger = netsvc.Logger() logger.notifyChannel('init', netsvc.LOG_ERROR, 'The XML file does not fit the required schema !') - logger.notifyChannel('init', netsvc.LOG_ERROR, relaxng.error_log.last_error) + logger.notifyChannel('init', netsvc.LOG_ERROR, tools.ustr(relaxng.error_log.last_error)) raise if idref is None: From 06460f8bf50ceae29454e90bed1e3a4da34faa8b Mon Sep 17 00:00:00 2001 From: "AME(Tiny/Axelor)" <> Date: Thu, 30 Jul 2009 14:21:45 +0530 Subject: [PATCH 6/6] [FIX] Expression calculation for Datetime Corrected lp bug: https://launchpad.net/bugs/405921 fixed bzr revid: jvo@tinyerp.com-20090730085145-mqd5phn8ynyxvt4l --- bin/osv/expression.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/osv/expression.py b/bin/osv/expression.py index feac4693d3a..b89e7ff3d96 100644 --- a/bin/osv/expression.py +++ b/bin/osv/expression.py @@ -200,11 +200,16 @@ class expression(object): # other field type # add the time part to datetime field when it's not there: if field._type == 'datetime' and self.__exp[i][2] and len(self.__exp[i][2]) == 10: + + self.__exp[i] = list(self.__exp[i]) + if operator in ('>', '>='): self.__exp[i][2] += ' 00:00:00' elif operator in ('<', '<='): self.__exp[i][2] += ' 23:59:59' - + + self.__exp[i] = tuple(self.__exp[i]) + if field.translate: if operator in ('like', 'ilike', 'not like', 'not ilike'): right = '%%%s%%' % right