From aeb27427ec7a2919e3e7a849df2eef93509ad607 Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Mon, 11 May 2009 12:14:16 +0530 Subject: [PATCH 1/6] [Fix] Bug 372706 : Domains for Booleans(False and Null) handled(ref:YSA) bzr revid: jvo@tinyerp.com-20090511064416-3e5xw3r5unvqggej --- bin/osv/expression.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bin/osv/expression.py b/bin/osv/expression.py index 2ee1492ddd0..9cad5137387 100644 --- a/bin/osv/expression.py +++ b/bin/osv/expression.py @@ -254,8 +254,12 @@ class expression(object): query = '(%s OR %s IS NULL)' % (query, left) else: params = [] - if (((right == False) and (type(right)==bool)) or (right is None)) and (operator == '='): - query = '%s.%s IS NULL' % (table._table, left) + if right == False and table._columns[leaf[0]]._type=="boolean" and (operator == '='): + query = '%s.%s IS NULL or %s.%s = false ' % (table._table, left,table._table, left) + elif (((right == False) and (type(right)==bool)) or (right is None)) and (operator == '='): + query = '%s.%s IS NULL ' % (table._table, left) + elif right == False and table._columns[leaf[0]]._type=="boolean" and (operator in ['<>', '!=']): + query = '%s.%s IS NOT NULL and %s.%s != false' % (table._table, left,table._table, left) elif (((right == False) and (type(right)==bool)) or right is None) and (operator in ['<>', '!=']): query = '%s.%s IS NOT NULL' % (table._table, left) else: From 2bbab698209a27f9c0df0551ebc02fedfe07ae69 Mon Sep 17 00:00:00 2001 From: "dsh (Open ERP)" Date: Mon, 11 May 2009 13:08:58 +0530 Subject: [PATCH 2/6] small chagnes for the html2html bzr revid: dsh@tinyerp.com-20090511073858-sff7m3ojtk2b8z57 --- bin/netsvc.py | 1 + bin/report/report_sxw.py | 27 ++++++++++++--------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/bin/netsvc.py b/bin/netsvc.py index 1a806d53766..a9a23e9e778 100644 --- a/bin/netsvc.py +++ b/bin/netsvc.py @@ -232,6 +232,7 @@ class OpenERPDispatcher: self.log('service', service_name) self.log('method', method) self.log('params', params) + print "Terp Calling",service_name,method,params result = LocalService(service_name)(method, *params) self.log('result', result) return result diff --git a/bin/report/report_sxw.py b/bin/report/report_sxw.py index 426b738f338..d6f7e343402 100644 --- a/bin/report/report_sxw.py +++ b/bin/report/report_sxw.py @@ -199,10 +199,7 @@ class rml_parse(object): def set_html_image(self,attach_id): try : att_id = int(attach_id) - print att_id attachment = self.pool.get('ir.attachment').browse(self.cr,self.uid,att_id) - print attachment - print attachment.datas return attachment.datas except : return '' @@ -502,22 +499,22 @@ class report_sxw(report_rml, preprocess.report): def create_single_html2html(self, cr, uid, ids, data, report_xml, context={}): context = context.copy() report_type = 'html' - context['parents'] = html_parents - - rml = report_xml.report_rml_content - - rml_parser = self.parser(cr, uid, self.name2, context) - rml_parser.parents = html_parents - rml_parser.tag = sxw_tag + context['parents'] = html_parents + + html = report_xml.report_rml_content + html_parser = self.parser(cr, uid, self.name2, context) + html_parser.parents = html_parents + html_parser.tag = sxw_tag objs = self.getObjects(cr, uid, ids, context) - rml_parser.set_context(objs, data, ids, report_type) + html_parser.set_context(objs, data, ids, report_type) + + html_dom = etree.HTML(html) + html_dom = self.preprocess_rml(html_dom,'html2html') - rml_dom = etree.HTML(rml) - rml_dom = self.preprocess_rml(rml_dom,'html2html') create_doc = self.generators['html2html'] - html = etree.tostring(create_doc(rml_dom, rml_parser.localcontext)) + html = etree.tostring(create_doc(html_dom, html_parser.localcontext)) - return (html, report_type) + return (html.replace('<', '<').replace('>', '>').replace('
',''), report_type) From 28a970761ab7bc52ebca1b5b374ba76d9e17eaeb Mon Sep 17 00:00:00 2001 From: Mantavya Gajjar Date: Mon, 11 May 2009 16:47:38 +0530 Subject: [PATCH 3/6] improvement in checking for model existance bzr revid: mga@tinyerp.com-20090511111738-00ornn57eh8jjfzp --- bin/addons/base/ir/ir_model.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 105ffece9dc..7a020704110 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -244,13 +244,12 @@ class ir_model_fields(osv.osv): if not vals['name'].startswith('x_'): raise except_orm(_('Error'), _("Custom fields must have a name that starts with 'x_' !")) - model_ids = self.pool.get('ir.model').search(cr, user, [('model','=',vals['relation'])]) - if model_ids: - if self.pool.get(vals['model']): - self.pool.get(vals['model']).__init__(self.pool, cr) - self.pool.get(vals['model'])._auto_init(cr, {}) - else: - raise except_orm(_('Error'), _("Model %s Does not Exist !" % vals['relation'])) + if 'relation' in vals and not self.pool.get('ir.model').search(cr, user, [('model','=',vals['relation'])]): + raise except_orm(_('Error'), _("Model %s Does not Exist !" % vals['relation'])) + + if self.pool.get(vals['model']): + self.pool.get(vals['model']).__init__(self.pool, cr) + self.pool.get(vals['model'])._auto_init(cr, {}) return res ir_model_fields() From a9233e3a74449e6dd20b3d69ce097276b67184a4 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 11 May 2009 15:21:12 +0200 Subject: [PATCH 4/6] [FIX] clear the cache when deleting an entry in ir_model_data bzr revid: christophe@tinyerp.com-20090511132112-b8mr6dbfdui7wtt1 --- bin/addons/base/ir/ir_model.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 7a020704110..6ee219378fa 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -450,6 +450,7 @@ class ir_model_data(osv.osv): cr.execute('select id from '+model_obj._table+' where id=%s', (res_id2,)) result3 = cr.fetchone() if not result3: + self._get_id.clear_cache(cr.dbname, uid, module, xml_id) cr.execute('delete from ir_model_data where id=%s', (action_id2,)) res_id = False else: From 111bec6d98db6954aeb99accb6751488e5ce957b Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Tue, 12 May 2009 09:57:47 +0200 Subject: [PATCH 5/6] [FIX] remove print. please use log-level=debug_rpc if you want track the rpc calls bzr revid: christophe@tinyerp.com-20090512075747-zvir83kpkzgie1pj --- bin/netsvc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/netsvc.py b/bin/netsvc.py index a9a23e9e778..1a806d53766 100644 --- a/bin/netsvc.py +++ b/bin/netsvc.py @@ -232,7 +232,6 @@ class OpenERPDispatcher: self.log('service', service_name) self.log('method', method) self.log('params', params) - print "Terp Calling",service_name,method,params result = LocalService(service_name)(method, *params) self.log('result', result) return result From 454fac5991bfbda3dcc81651e483d905efdd9005 Mon Sep 17 00:00:00 2001 From: husen daudi Date: Tue, 12 May 2009 16:17:08 +0530 Subject: [PATCH 6/6] Changed lang from selection to many2one (ref:mpa) bzr revid: hda@hda-20090512104708-wo36wuanouglci8g --- bin/addons/base/res/__init__.py | 2 +- bin/addons/base/res/partner/partner.py | 9 +-------- bin/addons/base/res/partner/partner_demo.xml | 1 - bin/addons/base/res/partner/partner_view.xml | 2 +- 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/bin/addons/base/res/__init__.py b/bin/addons/base/res/__init__.py index 91f47a8ba42..08dfa3f640d 100644 --- a/bin/addons/base/res/__init__.py +++ b/bin/addons/base/res/__init__.py @@ -24,11 +24,11 @@ import tools import country import bank +import res_lang import partner import res_currency import res_company import res_user -import res_lang import res_request diff --git a/bin/addons/base/res/partner/partner.py b/bin/addons/base/res/partner/partner.py index 43b857c1cb6..72f06c0b2dd 100644 --- a/bin/addons/base/res/partner/partner.py +++ b/bin/addons/base/res/partner/partner.py @@ -118,13 +118,6 @@ def _partner_title_get(self, cr, uid, context={}): res = obj.read(cr, uid, ids, ['shortcut','name'], context) return [(r['shortcut'], r['name']) for r in res] -def _lang_get(self, cr, uid, context={}): - obj = self.pool.get('res.lang') - ids = obj.search(cr, uid, [], context=context) - res = obj.read(cr, uid, ids, ['code', 'name'], context) - return [(r['code'], r['name']) for r in res] + [('','')] - - class res_partner(osv.osv): _description='Partner' _name = "res.partner" @@ -136,7 +129,7 @@ class res_partner(osv.osv): 'parent_id': fields.many2one('res.partner','Main Company', select=2), 'child_ids': fields.one2many('res.partner', 'parent_id', 'Partner Ref.'), 'ref': fields.char('Code', size=64), - 'lang': fields.selection(_lang_get, 'Language', size=5, help="If the selected language is loaded in the system, all documents related to this partner will be printed in this language. If not, it will be english."), + 'lang': fields.many2one('res.lang', 'Language', help="If the selected language is loaded in the system, all documents related to this partner will be printed in this language. If not, it will be english."), 'user_id': fields.many2one('res.users', 'Dedicated Salesman', help='The internal user that is in charge of communicating with this partner if any.'), 'vat': fields.char('VAT',size=32 ,help="Value Added Tax number. Check the box if the partner is subjected to the VAT. Used by the VAT legal statement."), 'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'), diff --git a/bin/addons/base/res/partner/partner_demo.xml b/bin/addons/base/res/partner/partner_demo.xml index ced4f04ae99..731dda1187b 100644 --- a/bin/addons/base/res/partner/partner_demo.xml +++ b/bin/addons/base/res/partner/partner_demo.xml @@ -102,7 +102,6 @@ Bank Wealthy and sons - en_US China Export diff --git a/bin/addons/base/res/partner/partner_view.xml b/bin/addons/base/res/partner/partner_view.xml index 127a44e4549..2a3796b127d 100644 --- a/bin/addons/base/res/partner/partner_view.xml +++ b/bin/addons/base/res/partner/partner_view.xml @@ -229,7 +229,7 @@ - +