From a5764c16515673161f96071920081ba31ccc5dae Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Fri, 13 May 2011 16:27:03 +0530 Subject: [PATCH 01/14] [ADD]Product:Add new config wiz product Terminology bzr revid: aag@tinyerp.co.in-20110513105703-3v2bs5xi9of7pgmc --- addons/product/wizard/__init__.py | 1 + addons/product/wizard/product_installer.xml | 61 +++++++++++++++ .../wizard/specify_product_terminology.py | 75 +++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 addons/product/wizard/specify_product_terminology.py diff --git a/addons/product/wizard/__init__.py b/addons/product/wizard/__init__.py index 47f5f2641fc..49373b98e86 100644 --- a/addons/product/wizard/__init__.py +++ b/addons/product/wizard/__init__.py @@ -19,6 +19,7 @@ # ############################################################################## import product_price +import specify_product_terminology # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product/wizard/product_installer.xml b/addons/product/wizard/product_installer.xml index 7f3ed52a384..bd6527bbd7b 100644 --- a/addons/product/wizard/product_installer.xml +++ b/addons/product/wizard/product_installer.xml @@ -20,5 +20,66 @@ skip + + + + Specify your terminology + specify.product.terminology + form + + + +
+ Specify your terminology +
+ + Specify your terminology + + + Specify your terminology. + + + + 12 + + + + + + + + + + +
+ + + + +
+
+
+
+
+ + + Specify your terminology + ir.actions.act_window + specify.product.terminology + form + + form + new + + + + + + + normal + skip + + diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py new file mode 100644 index 00000000000..c0e52c21648 --- /dev/null +++ b/addons/product/wizard/specify_product_terminology.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from osv import fields, osv +import pooler +import pytz + + +class specify_product_terminology(osv.osv_memory): + _name = 'specify.product.terminology' + _inherit = 'res.config' + _columns = { + 'partner': fields.selection([('customers','Customers'), + ('clients','Clients'), + ('members','Members'), + ('patients','Patients'), + ('partners','Partners'), + ('donors','Donors'), + ('guests','Guests'), + ('tenants','Tenants') + ], + 'Choose how to call a Partner', required=True ), + + 'products': fields.selection([('products','Products'), + ('contracts','Contracts'), + ('goods','Goods'), + ('services','Services'), + ('membership','Membership'), + ('artwork','Artwork') + ], + 'Choose how to call a Product', required=True ), + + 'terminolgy_ids':fields.one2many('product.treminolg.old.new.wizard', 'wizard_id', 'Wizard Reference'), + + } + _defaults={ + 'partner' :'partners', + 'products' :'products' + } + + def onchange_partner_product_term(self, cr, uid, ids, partner,products,context=None): + return {'value' : {'terminolgy_ids': [{'new_name': partner,'old_name':'Partners'},{'new_name': products,'old_name':'Products'}]}} + +specify_product_terminology() + +class product_treminolg_old_new_wizard(osv.osv_memory): + _name = "product.treminolg.old.new.wizard" + _columns = { + 'wizard_id': fields.many2one('specify.product.terminology','Terminology', required=True), + 'old_name': fields.char('Old Name', size=64, required=True, translate=True), + 'new_name': fields.char('New Name', size=64, required=True, translate=True), + + } + +product_treminolg_old_new_wizard() + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 25ff908e29cc25c76150f281c1a8a7c2edd99ee5 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Fri, 13 May 2011 17:10:31 +0530 Subject: [PATCH 02/14] [IMP]Product:Improvement in onchange Func of config wiz product Terminology bzr revid: aag@tinyerp.co.in-20110513114031-yasou3kneb99ni3d --- .../wizard/specify_product_terminology.py | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py index c0e52c21648..3bfe723b734 100644 --- a/addons/product/wizard/specify_product_terminology.py +++ b/addons/product/wizard/specify_product_terminology.py @@ -56,7 +56,57 @@ class specify_product_terminology(osv.osv_memory): } def onchange_partner_product_term(self, cr, uid, ids, partner,products,context=None): - return {'value' : {'terminolgy_ids': [{'new_name': partner,'old_name':'Partners'},{'new_name': products,'old_name':'Products'}]}} + + partner_list = [] + product_list = [] + #For Partner selection + if partner == 'partners': + partner_list =[ {'new_name': 'partner','old_name':'partner'},{'new_name': 'Partner','old_name':'Partner'},{'new_name': 'partners','old_name':'partners'},{'new_name': 'Partners','old_name':'Partners'}] + + if partner == 'customers': + partner_list =[ {'new_name': 'customer','old_name':'partner'},{'new_name': 'Customer','old_name':'Partner'},{'new_name': 'customers','old_name':'customers'},{'new_name': 'Customers','old_name':'Customers'}] + + if partner == 'clients': + partner_list =[ {'new_name': 'client','old_name':'partner'},{'new_name': 'Client','old_name':'Partner'},{'new_name': 'clients','old_name':'partners'},{'new_name': 'Clients','old_name':'Partners'}] + + if partner == 'members': + partner_list =[ {'new_name': 'member','old_name':'partner'},{'new_name': 'Member','old_name':'Partner'},{'new_name': 'members','old_name':'partners'},{'new_name': 'Members','old_name':'Partners'}] + + if partner == 'patients': + partner_list =[ {'new_name': 'patient','old_name':'partner'},{'new_name': 'Patient','old_name':'Partner'},{'new_name': 'patients','old_name':'partners'},{'new_name': 'Patients','old_name':'Partners'}] + + if partner == 'donors': + partner_list =[ {'new_name': 'donor','old_name':'partner'},{'new_name': 'Donor','old_name':'Partner'},{'new_name': 'donors','old_name':'partners'},{'new_name': 'Donors','old_name':'Partners'}] + + if partner == 'guests': + partner_list =[ {'new_name': 'guest','old_name':'partner'},{'new_name': 'Guest','old_name':'Partner'},{'new_name': 'guests','old_name':'partners'},{'new_name': 'Guests','old_name':'Partners'}] + + if partner == 'tenants': + partner_list =[ {'new_name': 'tenant','old_name':'partner'},{'new_name': 'Tenant','old_name':'Partner'},{'new_name': 'tenants','old_name':'partners'},{'new_name': 'Tenants','old_name':'Partners'}] + + # For Product selection + if products == 'products': + product_list =[ {'new_name': 'product','old_name':'product'},{'new_name': 'Product','old_name':'Product'},{'new_name': 'products','old_name':'products'},{'new_name': 'Products','old_name':'Products'}] + + if products == 'contracts': + product_list =[ {'new_name': 'contract','old_name':'product'},{'new_name': 'Contract','old_name':'Product'},{'new_name': 'contracts','old_name':'products'},{'new_name': 'Contracts','old_name':'Products'}] + + if products == 'goods': + product_list =[ {'new_name': 'goods','old_name':'product'},{'new_name': 'Goods','old_name':'Product'},{'new_name': 'goods','old_name':'products'},{'new_name': 'Goods','old_name':'Products'}] + + if products == 'services': + product_list =[ {'new_name': 'service','old_name':'product'},{'new_name': 'Service','old_name':'Product'},{'new_name': 'services','old_name':'products'},{'new_name': 'Services','old_name':'Products'}] + + if products == 'membership': + product_list =[ {'new_name': 'membership','old_name':'product'},{'new_name': 'Membership','old_name':'Product'},{'new_name': 'memberships','old_name':'products'},{'new_name': 'Memberships','old_name':'Products'}] + + if products == 'artwork': + product_list =[ {'new_name': 'artwork','old_name':'product'},{'new_name': 'Artwork','old_name':'Product'},{'new_name': 'artworks','old_name':'products'},{'new_name': 'Artworks','old_name':'Products'}] + + term_list = partner_list + product_list + + return {'value' : {'terminolgy_ids': term_list}} + specify_product_terminology() From e5e028083a3b82b443b0b77949fb3810f0d04ef2 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Fri, 13 May 2011 17:21:02 +0530 Subject: [PATCH 03/14] [IMP]Product:Improvement in view of config wiz product Terminology bzr revid: aag@tinyerp.co.in-20110513115102-a5puhqt2rn0phm05 --- addons/product/wizard/product_installer.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/product/wizard/product_installer.xml b/addons/product/wizard/product_installer.xml index bd6527bbd7b..c17fb7fd486 100644 --- a/addons/product/wizard/product_installer.xml +++ b/addons/product/wizard/product_installer.xml @@ -23,21 +23,21 @@ - Specify your terminology + Specify Your Terminology specify.product.terminology form
- Specify your terminology + Specify Your Terminology
- Specify your terminology + Specify Your Terminology - Specify your terminology. + Specify Your Terminology. @@ -48,11 +48,11 @@ - + -
+ @@ -64,7 +64,7 @@
- Specify your terminology + Specify Your Terminology ir.actions.act_window specify.product.terminology form From 74582f274076dd4fdcc18f12375b66badd361283 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Mon, 16 May 2011 14:16:45 +0530 Subject: [PATCH 04/14] [IMP]Product:Improvement in config wiz product Terminology bzr revid: aag@tinyerp.co.in-20110516084645-rn2somi8k631i3ge --- addons/product/wizard/product_installer.xml | 14 +--- .../wizard/specify_product_terminology.py | 81 +------------------ 2 files changed, 5 insertions(+), 90 deletions(-) diff --git a/addons/product/wizard/product_installer.xml b/addons/product/wizard/product_installer.xml index c17fb7fd486..3b7f054438c 100644 --- a/addons/product/wizard/product_installer.xml +++ b/addons/product/wizard/product_installer.xml @@ -45,18 +45,8 @@ - - - - - - - -
- - - - + +
diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py index 3bfe723b734..e80780c64f9 100644 --- a/addons/product/wizard/specify_product_terminology.py +++ b/addons/product/wizard/specify_product_terminology.py @@ -36,90 +36,15 @@ class specify_product_terminology(osv.osv_memory): ('guests','Guests'), ('tenants','Tenants') ], - 'Choose how to call a Partner', required=True ), - - 'products': fields.selection([('products','Products'), - ('contracts','Contracts'), - ('goods','Goods'), - ('services','Services'), - ('membership','Membership'), - ('artwork','Artwork') - ], - 'Choose how to call a Product', required=True ), - - 'terminolgy_ids':fields.one2many('product.treminolg.old.new.wizard', 'wizard_id', 'Wizard Reference'), + 'Choose how to call a Customer', required=True ), + 'products' : fields.char('Choose how to call a Product', size=64), + } _defaults={ 'partner' :'partners', - 'products' :'products' } - def onchange_partner_product_term(self, cr, uid, ids, partner,products,context=None): - - partner_list = [] - product_list = [] - #For Partner selection - if partner == 'partners': - partner_list =[ {'new_name': 'partner','old_name':'partner'},{'new_name': 'Partner','old_name':'Partner'},{'new_name': 'partners','old_name':'partners'},{'new_name': 'Partners','old_name':'Partners'}] - - if partner == 'customers': - partner_list =[ {'new_name': 'customer','old_name':'partner'},{'new_name': 'Customer','old_name':'Partner'},{'new_name': 'customers','old_name':'customers'},{'new_name': 'Customers','old_name':'Customers'}] - - if partner == 'clients': - partner_list =[ {'new_name': 'client','old_name':'partner'},{'new_name': 'Client','old_name':'Partner'},{'new_name': 'clients','old_name':'partners'},{'new_name': 'Clients','old_name':'Partners'}] - - if partner == 'members': - partner_list =[ {'new_name': 'member','old_name':'partner'},{'new_name': 'Member','old_name':'Partner'},{'new_name': 'members','old_name':'partners'},{'new_name': 'Members','old_name':'Partners'}] - - if partner == 'patients': - partner_list =[ {'new_name': 'patient','old_name':'partner'},{'new_name': 'Patient','old_name':'Partner'},{'new_name': 'patients','old_name':'partners'},{'new_name': 'Patients','old_name':'Partners'}] - - if partner == 'donors': - partner_list =[ {'new_name': 'donor','old_name':'partner'},{'new_name': 'Donor','old_name':'Partner'},{'new_name': 'donors','old_name':'partners'},{'new_name': 'Donors','old_name':'Partners'}] - - if partner == 'guests': - partner_list =[ {'new_name': 'guest','old_name':'partner'},{'new_name': 'Guest','old_name':'Partner'},{'new_name': 'guests','old_name':'partners'},{'new_name': 'Guests','old_name':'Partners'}] - - if partner == 'tenants': - partner_list =[ {'new_name': 'tenant','old_name':'partner'},{'new_name': 'Tenant','old_name':'Partner'},{'new_name': 'tenants','old_name':'partners'},{'new_name': 'Tenants','old_name':'Partners'}] - - # For Product selection - if products == 'products': - product_list =[ {'new_name': 'product','old_name':'product'},{'new_name': 'Product','old_name':'Product'},{'new_name': 'products','old_name':'products'},{'new_name': 'Products','old_name':'Products'}] - - if products == 'contracts': - product_list =[ {'new_name': 'contract','old_name':'product'},{'new_name': 'Contract','old_name':'Product'},{'new_name': 'contracts','old_name':'products'},{'new_name': 'Contracts','old_name':'Products'}] - - if products == 'goods': - product_list =[ {'new_name': 'goods','old_name':'product'},{'new_name': 'Goods','old_name':'Product'},{'new_name': 'goods','old_name':'products'},{'new_name': 'Goods','old_name':'Products'}] - - if products == 'services': - product_list =[ {'new_name': 'service','old_name':'product'},{'new_name': 'Service','old_name':'Product'},{'new_name': 'services','old_name':'products'},{'new_name': 'Services','old_name':'Products'}] - - if products == 'membership': - product_list =[ {'new_name': 'membership','old_name':'product'},{'new_name': 'Membership','old_name':'Product'},{'new_name': 'memberships','old_name':'products'},{'new_name': 'Memberships','old_name':'Products'}] - - if products == 'artwork': - product_list =[ {'new_name': 'artwork','old_name':'product'},{'new_name': 'Artwork','old_name':'Product'},{'new_name': 'artworks','old_name':'products'},{'new_name': 'Artworks','old_name':'Products'}] - - term_list = partner_list + product_list - - return {'value' : {'terminolgy_ids': term_list}} - - specify_product_terminology() -class product_treminolg_old_new_wizard(osv.osv_memory): - _name = "product.treminolg.old.new.wizard" - _columns = { - 'wizard_id': fields.many2one('specify.product.terminology','Terminology', required=True), - 'old_name': fields.char('Old Name', size=64, required=True, translate=True), - 'new_name': fields.char('New Name', size=64, required=True, translate=True), - - } - -product_treminolg_old_new_wizard() - - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 11025a186b82b53452d5e8c8049396fe15559cf5 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Mon, 16 May 2011 19:14:30 +0530 Subject: [PATCH 05/14] [IMP]Product:create new func for config wiz product Terminology bzr revid: aag@tinyerp.co.in-20110516134430-7lslnkf9134h8uxr --- .../wizard/specify_product_terminology.py | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py index e80780c64f9..5e8790df674 100644 --- a/addons/product/wizard/specify_product_terminology.py +++ b/addons/product/wizard/specify_product_terminology.py @@ -27,24 +27,37 @@ class specify_product_terminology(osv.osv_memory): _name = 'specify.product.terminology' _inherit = 'res.config' _columns = { - 'partner': fields.selection([('customers','Customers'), - ('clients','Clients'), - ('members','Members'), - ('patients','Patients'), - ('partners','Partners'), - ('donors','Donors'), - ('guests','Guests'), - ('tenants','Tenants') + 'partner': fields.selection([('Customers','Customers'), + ('Clients','Clients'), + ('Members','Members'), + ('Patients','Patients'), + ('Partners','Partners'), + ('Donors','Donors'), + ('Guests','Guests'), + ('Tenants','Tenants') ], - 'Choose how to call a Customer', required=True ), + 'Choose how to call a customer', required=True ), 'products' : fields.char('Choose how to call a Product', size=64), } _defaults={ - 'partner' :'partners', + 'partner' :'Partners', } + def execute(self, cr, uid, ids, context=None): + for o in self.browse(cr, uid, ids, context=context): + user_obj = self.pool.get('res.users') + trans_obj = self.pool.get('ir.translation') + browse_val = user_obj.browse(cr ,uid ,uid , context=context) + name = browse_val.name + context_lang = browse_val.context_lang + name_prt = 'res.partner,name' + name_prod = 'product.template,name' + trans_obj.create(cr, uid, {'name': name_prt ,'lang': context_lang, 'type': 'field', 'src': 'Name', 'value': o.partner}, context=context) + trans_obj.create(cr, uid, {'name': name_prod ,'lang': context_lang, 'type': 'field', 'src': 'Name', 'value': o.products}, context=context) + return {} + specify_product_terminology() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 26a2fb7188ee6750e5ea0ab3695e562c7d2047fd Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Tue, 17 May 2011 16:56:41 +0530 Subject: [PATCH 06/14] [IMP]Product:In config wiz product Terminology user can change Field Lable of Partner and Product bzr revid: aag@tinyerp.co.in-20110517112641-lelq0s1jid3s3vhj --- .../wizard/specify_product_terminology.py | 55 ++++++++++++++----- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py index 5e8790df674..4380d4591f0 100644 --- a/addons/product/wizard/specify_product_terminology.py +++ b/addons/product/wizard/specify_product_terminology.py @@ -27,14 +27,14 @@ class specify_product_terminology(osv.osv_memory): _name = 'specify.product.terminology' _inherit = 'res.config' _columns = { - 'partner': fields.selection([('Customers','Customers'), - ('Clients','Clients'), - ('Members','Members'), - ('Patients','Patients'), - ('Partners','Partners'), - ('Donors','Donors'), - ('Guests','Guests'), - ('Tenants','Tenants') + 'partner': fields.selection([('Customer','Customer'), + ('Client','Client'), + ('Member','Member'), + ('Patient','Patient'), + ('Partner','Partner'), + ('Donor','Donor'), + ('Guest','Guest'), + ('Tenant','Tenant') ], 'Choose how to call a customer', required=True ), @@ -43,19 +43,48 @@ class specify_product_terminology(osv.osv_memory): } _defaults={ 'partner' :'Partners', + 'products' :'Product' } def execute(self, cr, uid, ids, context=None): for o in self.browse(cr, uid, ids, context=context): user_obj = self.pool.get('res.users') trans_obj = self.pool.get('ir.translation') + ir_model = self.pool.get('ir.model.fields') + ir_model_prod_id = ir_model.search(cr,uid, [('field_description','like','Product')]) + ir_model_partner_id = ir_model.search(cr,uid, [('field_description','like','Partner')]) + trans_id = trans_obj.search(cr,uid, [],context=context) browse_val = user_obj.browse(cr ,uid ,uid , context=context) - name = browse_val.name context_lang = browse_val.context_lang - name_prt = 'res.partner,name' - name_prod = 'product.template,name' - trans_obj.create(cr, uid, {'name': name_prt ,'lang': context_lang, 'type': 'field', 'src': 'Name', 'value': o.partner}, context=context) - trans_obj.create(cr, uid, {'name': name_prod ,'lang': context_lang, 'type': 'field', 'src': 'Name', 'value': o.products}, context=context) + # For Partner Translation + if ir_model_prod_id: + for p_id in ir_model_partner_id: + brw_ir_model = ir_model.browse(cr ,uid ,p_id , context=context) + name1 = brw_ir_model.field_description + name2 = name1.replace('Partner',o.partner) + obj2 = brw_ir_model.model_id.model + field = brw_ir_model.name + partner_name = obj2 +',' + field + already_id = trans_obj.search(cr,uid, [('name','=',partner_name)]) + if already_id: + for un_id in already_id: + trans_obj.unlink(cr ,uid, un_id, context=context ) + created_id = trans_obj.create(cr, uid, {'name': partner_name ,'lang': context_lang, 'type': 'field', 'src': name1, 'value': name2}, context=context) + # For Product Translation + if ir_model_prod_id: + for prd_id in ir_model_prod_id: + brw_prod_ir_model = ir_model.browse(cr ,uid ,prd_id , context=context) + name_prod1 = brw_prod_ir_model.field_description + name_prod2 = name_prod1.replace('Product',o.products) + obj_prod = brw_prod_ir_model.model_id.model + prod_field = brw_prod_ir_model.name + product_name = obj_prod +',' + prod_field + already_prod_id = trans_obj.search(cr,uid, [('name','=',product_name)]) + if already_prod_id: + for un_id in already_prod_id: + trans_obj.unlink(cr ,uid, un_id, context=context ) + created_id = trans_obj.create(cr, uid, {'name': product_name ,'lang': context_lang, 'type': 'field', 'src': name_prod1, 'value': name_prod2}, context=context) + return {} specify_product_terminology() From 941133c5464a7d2a0a539f7e1e89c9ce0ee6cfe9 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Tue, 17 May 2011 18:36:22 +0530 Subject: [PATCH 07/14] [IMP]Product:Optimize Code of config wiz product Terminology bzr revid: aag@tinyerp.co.in-20110517130622-ipl3xv18irrnjq48 --- .../wizard/specify_product_terminology.py | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py index 4380d4591f0..fed03d566d9 100644 --- a/addons/product/wizard/specify_product_terminology.py +++ b/addons/product/wizard/specify_product_terminology.py @@ -46,16 +46,28 @@ class specify_product_terminology(osv.osv_memory): 'products' :'Product' } + def trnslate_create(self, cr, uid, ids, name, type, src, value, context=None): + if context is None: + context = {} + trans_obj = self.pool.get('ir.translation') + user_obj = self.pool.get('res.users') + context_lang = user_obj.browse(cr ,uid ,uid , context=context).context_lang + already_id = trans_obj.search(cr,uid, [('name','=',name)]) + if already_id: + for un_id in already_id: + trans_obj.unlink(cr ,uid, un_id, context=context ) + create_id = trans_obj.create(cr, uid, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value}, context=context) + return {} + + def execute(self, cr, uid, ids, context=None): + if context is None: + context = {} for o in self.browse(cr, uid, ids, context=context): - user_obj = self.pool.get('res.users') trans_obj = self.pool.get('ir.translation') ir_model = self.pool.get('ir.model.fields') ir_model_prod_id = ir_model.search(cr,uid, [('field_description','like','Product')]) ir_model_partner_id = ir_model.search(cr,uid, [('field_description','like','Partner')]) - trans_id = trans_obj.search(cr,uid, [],context=context) - browse_val = user_obj.browse(cr ,uid ,uid , context=context) - context_lang = browse_val.context_lang # For Partner Translation if ir_model_prod_id: for p_id in ir_model_partner_id: @@ -65,11 +77,7 @@ class specify_product_terminology(osv.osv_memory): obj2 = brw_ir_model.model_id.model field = brw_ir_model.name partner_name = obj2 +',' + field - already_id = trans_obj.search(cr,uid, [('name','=',partner_name)]) - if already_id: - for un_id in already_id: - trans_obj.unlink(cr ,uid, un_id, context=context ) - created_id = trans_obj.create(cr, uid, {'name': partner_name ,'lang': context_lang, 'type': 'field', 'src': name1, 'value': name2}, context=context) + self.trnslate_create(cr, uid, ids, partner_name, 'field', name1 ,name2 ,context=context ) # For Product Translation if ir_model_prod_id: for prd_id in ir_model_prod_id: @@ -79,11 +87,7 @@ class specify_product_terminology(osv.osv_memory): obj_prod = brw_prod_ir_model.model_id.model prod_field = brw_prod_ir_model.name product_name = obj_prod +',' + prod_field - already_prod_id = trans_obj.search(cr,uid, [('name','=',product_name)]) - if already_prod_id: - for un_id in already_prod_id: - trans_obj.unlink(cr ,uid, un_id, context=context ) - created_id = trans_obj.create(cr, uid, {'name': product_name ,'lang': context_lang, 'type': 'field', 'src': name_prod1, 'value': name_prod2}, context=context) + self.trnslate_create(cr, uid, ids, product_name, 'field', name_prod1 ,name_prod2 ,context=context ) return {} From e76f48e13b4e6e194dcc5b1ebbd7ca5a47e13393 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 18 May 2011 10:06:26 +0530 Subject: [PATCH 08/14] [IMP]Product:In config wiz product Terminology user can change Field Lable and Menu of Partner and Product bzr revid: aag@tinyerp.co.in-20110518043626-m2v7g8ppchm8220i --- .../wizard/specify_product_terminology.py | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py index fed03d566d9..fa90796d9ee 100644 --- a/addons/product/wizard/specify_product_terminology.py +++ b/addons/product/wizard/specify_product_terminology.py @@ -46,17 +46,19 @@ class specify_product_terminology(osv.osv_memory): 'products' :'Product' } - def trnslate_create(self, cr, uid, ids, name, type, src, value, context=None): + def trnslate_create(self, cr, uid, ids, name, type, src, value,res_id = False, context=None): if context is None: context = {} trans_obj = self.pool.get('ir.translation') user_obj = self.pool.get('res.users') context_lang = user_obj.browse(cr ,uid ,uid , context=context).context_lang - already_id = trans_obj.search(cr,uid, [('name','=',name)]) + if res_id == False : + res_id = 0 + already_id = trans_obj.search(cr,uid, [('name','=',name),('res_id','=',res_id)]) if already_id: for un_id in already_id: trans_obj.unlink(cr ,uid, un_id, context=context ) - create_id = trans_obj.create(cr, uid, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value}, context=context) + create_id = trans_obj.create(cr, uid, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) return {} @@ -66,8 +68,11 @@ class specify_product_terminology(osv.osv_memory): for o in self.browse(cr, uid, ids, context=context): trans_obj = self.pool.get('ir.translation') ir_model = self.pool.get('ir.model.fields') + ir_menu = self.pool.get('ir.ui.menu') ir_model_prod_id = ir_model.search(cr,uid, [('field_description','like','Product')]) ir_model_partner_id = ir_model.search(cr,uid, [('field_description','like','Partner')]) + ir_menu_product_id = ir_menu.search(cr,uid, [('name','like','Product')]) + ir_menu_partner_id = ir_menu.search(cr,uid, [('name','like','Partner')]) # For Partner Translation if ir_model_prod_id: for p_id in ir_model_partner_id: @@ -78,6 +83,16 @@ class specify_product_terminology(osv.osv_memory): field = brw_ir_model.name partner_name = obj2 +',' + field self.trnslate_create(cr, uid, ids, partner_name, 'field', name1 ,name2 ,context=context ) + + if ir_menu_partner_id: + for m_id in ir_menu_partner_id: + brw_partner_menu = ir_menu.browse(cr ,uid ,m_id , context=context) + menu_partner_name1 = brw_partner_menu.name + menu_partner_name2 = menu_partner_name1.replace('Partner',o.partner) + res_id = m_id + menu_partnr_name = 'ir.ui.menu' + ',' + 'name' + self.trnslate_create(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name2, res_id ,context=context ) + # For Product Translation if ir_model_prod_id: for prd_id in ir_model_prod_id: @@ -88,7 +103,16 @@ class specify_product_terminology(osv.osv_memory): prod_field = brw_prod_ir_model.name product_name = obj_prod +',' + prod_field self.trnslate_create(cr, uid, ids, product_name, 'field', name_prod1 ,name_prod2 ,context=context ) - + + if ir_menu_product_id: + for m_id in ir_menu_product_id: + brw_menu = ir_menu.browse(cr ,uid ,m_id , context=context) + menu_name1 = brw_menu.name + menu_name2 = menu_name1.replace('Product',o.products) + res_id = m_id + menu_name = 'ir.ui.menu' + ',' + 'name' + self.trnslate_create(cr, uid, ids, menu_name, 'model', menu_name1 , menu_name2, res_id ,context=context ) + return {} specify_product_terminology() From e32610654a91085a2952040ac5064ff336c34c0e Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 18 May 2011 18:07:22 +0530 Subject: [PATCH 09/14] [IMP]Base_setup,Product: config wiz product Terminology move in Base setup & remove from Product bzr revid: aag@tinyerp.co.in-20110518123722-s0k6xap9w8qwd0lo --- addons/base_setup/base_setup_installer.xml | 50 ++++++++ addons/base_setup/installer.py | 64 ++++++++++ addons/product/wizard/__init__.py | 1 - addons/product/wizard/product_installer.xml | 51 -------- .../wizard/specify_product_terminology.py | 120 ------------------ 5 files changed, 114 insertions(+), 172 deletions(-) delete mode 100644 addons/product/wizard/specify_product_terminology.py diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index b0e63f6962b..0956bef5f20 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -234,6 +234,56 @@ normal cancel
+ + + + + Specify Your Terminology + specify.partner.terminology + form + + + +
+ Specify Your Terminology +
+ + Specify Your Terminology + + + Based on the industry needs you can use this wizard to change the terminologies for Partners. + + + + 12 + + + + + + +
+
+
+ + + Specify Your Terminology + ir.actions.act_window + specify.partner.terminology + form + + form + new + + + + + + + normal + skip + diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index 9fb07217795..ee7d5f53ab8 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -241,4 +241,68 @@ class user_preferences_config(osv.osv_memory): user_preferences_config() +# Specify Your Terminology + +class specify_partner_terminology(osv.osv_memory): + _name = 'specify.partner.terminology' + _inherit = 'res.config' + _columns = { + 'partner': fields.selection([('Customer','Customer'), + ('Client','Client'), + ('Member','Member'), + ('Patient','Patient'), + ('Partner','Partner'), + ('Donor','Donor'), + ('Guest','Guest'), + ('Tenant','Tenant') + ], + 'Choose how to call a customer', required=True ), + } + _defaults={ + 'partner' :'Partner', + } + + def translations_done(self, cr, uid, ids, name, type, src, value,res_id = 0, context=None): + trans_obj = self.pool.get('ir.translation') + user_obj = self.pool.get('res.users') + context_lang = user_obj.browse(cr ,uid ,uid , context=context).context_lang + already_id = trans_obj.search(cr,uid, [('name','=',name),('res_id','=',res_id)]) + for un_id in already_id: + trans_obj.write(cr ,uid, un_id, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) + if not already_id: + create_id = trans_obj.create(cr, uid, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) + return {} + + + def execute(self, cr, uid, ids, context=None): + trans_obj = self.pool.get('ir.translation') + fields_obj = self.pool.get('ir.model.fields') + menu_obj= self.pool.get('ir.ui.menu') + for o in self.browse(cr, uid, ids, context=context): + model_partner_ids = fields_obj.search(cr,uid, [('field_description','ilike','Partner')]) + menu_partner_ids = menu_obj.search(cr,uid, [('name','ilike','Partner')]) + # For Partner Translation + for p_id in model_partner_ids: + brw_fields_obj = fields_obj.browse(cr ,uid ,p_id , context=context) + name1 = brw_fields_obj.field_description + name2 = name1.replace('Partner',o.partner) + obj2 = brw_fields_obj.model_id.model + field = brw_fields_obj.name + partner_name = obj2 +',' + field + self.translations_done(cr, uid, ids, partner_name, 'field', name1 ,name2 ,context=context ) + + for m_id in menu_partner_ids: + brw_menu_obj = menu_obj.browse(cr ,uid ,m_id , context=context) + menu_partner_name1 = brw_menu_obj.name + menu_partnr_name = 'ir.ui.menu' + ',' + 'name' + already_id = trans_obj.search(cr,uid, [('name','=',menu_partnr_name),('res_id','=',m_id)]) + if already_id: + menu_partner_name1 = trans_obj.browse(cr, uid, already_id[0], context=context).src + menu_partner_name2 = menu_partner_name1.replace('Partner',o.partner) + self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name2, m_id ,context=context ) + + return {} + +specify_partner_terminology() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product/wizard/__init__.py b/addons/product/wizard/__init__.py index 49373b98e86..47f5f2641fc 100644 --- a/addons/product/wizard/__init__.py +++ b/addons/product/wizard/__init__.py @@ -19,7 +19,6 @@ # ############################################################################## import product_price -import specify_product_terminology # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product/wizard/product_installer.xml b/addons/product/wizard/product_installer.xml index 3b7f054438c..7f3ed52a384 100644 --- a/addons/product/wizard/product_installer.xml +++ b/addons/product/wizard/product_installer.xml @@ -20,56 +20,5 @@ skip - - - - Specify Your Terminology - specify.product.terminology - form - - - -
- Specify Your Terminology -
- - Specify Your Terminology - - - Specify Your Terminology. - - - - 12 - - - - - - - -
-
-
- - - Specify Your Terminology - ir.actions.act_window - specify.product.terminology - form - - form - new - - - - - - - normal - skip - - diff --git a/addons/product/wizard/specify_product_terminology.py b/addons/product/wizard/specify_product_terminology.py deleted file mode 100644 index fa90796d9ee..00000000000 --- a/addons/product/wizard/specify_product_terminology.py +++ /dev/null @@ -1,120 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from osv import fields, osv -import pooler -import pytz - - -class specify_product_terminology(osv.osv_memory): - _name = 'specify.product.terminology' - _inherit = 'res.config' - _columns = { - 'partner': fields.selection([('Customer','Customer'), - ('Client','Client'), - ('Member','Member'), - ('Patient','Patient'), - ('Partner','Partner'), - ('Donor','Donor'), - ('Guest','Guest'), - ('Tenant','Tenant') - ], - 'Choose how to call a customer', required=True ), - - 'products' : fields.char('Choose how to call a Product', size=64), - - } - _defaults={ - 'partner' :'Partners', - 'products' :'Product' - } - - def trnslate_create(self, cr, uid, ids, name, type, src, value,res_id = False, context=None): - if context is None: - context = {} - trans_obj = self.pool.get('ir.translation') - user_obj = self.pool.get('res.users') - context_lang = user_obj.browse(cr ,uid ,uid , context=context).context_lang - if res_id == False : - res_id = 0 - already_id = trans_obj.search(cr,uid, [('name','=',name),('res_id','=',res_id)]) - if already_id: - for un_id in already_id: - trans_obj.unlink(cr ,uid, un_id, context=context ) - create_id = trans_obj.create(cr, uid, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) - return {} - - - def execute(self, cr, uid, ids, context=None): - if context is None: - context = {} - for o in self.browse(cr, uid, ids, context=context): - trans_obj = self.pool.get('ir.translation') - ir_model = self.pool.get('ir.model.fields') - ir_menu = self.pool.get('ir.ui.menu') - ir_model_prod_id = ir_model.search(cr,uid, [('field_description','like','Product')]) - ir_model_partner_id = ir_model.search(cr,uid, [('field_description','like','Partner')]) - ir_menu_product_id = ir_menu.search(cr,uid, [('name','like','Product')]) - ir_menu_partner_id = ir_menu.search(cr,uid, [('name','like','Partner')]) - # For Partner Translation - if ir_model_prod_id: - for p_id in ir_model_partner_id: - brw_ir_model = ir_model.browse(cr ,uid ,p_id , context=context) - name1 = brw_ir_model.field_description - name2 = name1.replace('Partner',o.partner) - obj2 = brw_ir_model.model_id.model - field = brw_ir_model.name - partner_name = obj2 +',' + field - self.trnslate_create(cr, uid, ids, partner_name, 'field', name1 ,name2 ,context=context ) - - if ir_menu_partner_id: - for m_id in ir_menu_partner_id: - brw_partner_menu = ir_menu.browse(cr ,uid ,m_id , context=context) - menu_partner_name1 = brw_partner_menu.name - menu_partner_name2 = menu_partner_name1.replace('Partner',o.partner) - res_id = m_id - menu_partnr_name = 'ir.ui.menu' + ',' + 'name' - self.trnslate_create(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name2, res_id ,context=context ) - - # For Product Translation - if ir_model_prod_id: - for prd_id in ir_model_prod_id: - brw_prod_ir_model = ir_model.browse(cr ,uid ,prd_id , context=context) - name_prod1 = brw_prod_ir_model.field_description - name_prod2 = name_prod1.replace('Product',o.products) - obj_prod = brw_prod_ir_model.model_id.model - prod_field = brw_prod_ir_model.name - product_name = obj_prod +',' + prod_field - self.trnslate_create(cr, uid, ids, product_name, 'field', name_prod1 ,name_prod2 ,context=context ) - - if ir_menu_product_id: - for m_id in ir_menu_product_id: - brw_menu = ir_menu.browse(cr ,uid ,m_id , context=context) - menu_name1 = brw_menu.name - menu_name2 = menu_name1.replace('Product',o.products) - res_id = m_id - menu_name = 'ir.ui.menu' + ',' + 'name' - self.trnslate_create(cr, uid, ids, menu_name, 'model', menu_name1 , menu_name2, res_id ,context=context ) - - return {} - -specify_product_terminology() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 0f7d9bb5e287c54a2e56234891fe0d6da4b22efe Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 18 May 2011 18:49:53 +0530 Subject: [PATCH 10/14] [IMP]Base_setup:Optimize Code of config wiz Terminology bzr revid: aag@tinyerp.co.in-20110518131953-rdvjobg9tcn563r1 --- addons/base_setup/installer.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index ee7d5f53ab8..780aac9af52 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -284,12 +284,8 @@ class specify_partner_terminology(osv.osv_memory): # For Partner Translation for p_id in model_partner_ids: brw_fields_obj = fields_obj.browse(cr ,uid ,p_id , context=context) - name1 = brw_fields_obj.field_description - name2 = name1.replace('Partner',o.partner) - obj2 = brw_fields_obj.model_id.model - field = brw_fields_obj.name - partner_name = obj2 +',' + field - self.translations_done(cr, uid, ids, partner_name, 'field', name1 ,name2 ,context=context ) + partner_name = brw_fields_obj.model_id.model +',' + brw_fields_obj.name + self.translations_done(cr, uid, ids, partner_name, 'field', brw_fields_obj.field_description ,brw_fields_obj.field_description.replace('Partner',o.partner) ,context=context ) for m_id in menu_partner_ids: brw_menu_obj = menu_obj.browse(cr ,uid ,m_id , context=context) From 61792fc2f0580b6e6be2c06b8c28aed58f83642a Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 18 May 2011 19:03:59 +0530 Subject: [PATCH 11/14] [IMP]Base_setup:Optimize Code of config wiz Terminology bzr revid: aag@tinyerp.co.in-20110518133359-z7rhqpurlw8zh6z8 --- addons/base_setup/installer.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index 780aac9af52..95462367f83 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -294,8 +294,7 @@ class specify_partner_terminology(osv.osv_memory): already_id = trans_obj.search(cr,uid, [('name','=',menu_partnr_name),('res_id','=',m_id)]) if already_id: menu_partner_name1 = trans_obj.browse(cr, uid, already_id[0], context=context).src - menu_partner_name2 = menu_partner_name1.replace('Partner',o.partner) - self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name2, m_id ,context=context ) + self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name1.replace('Partner',o.partner), m_id ,context=context ) return {} From ae588289825751d2cdcab3b75aeb46e0f9bbc3b9 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 18 May 2011 19:21:38 +0530 Subject: [PATCH 12/14] [IMP]Base_setup:Optimize Code of config wiz Terminology bzr revid: aag@tinyerp.co.in-20110518135138-ixkc0qqfh09p6sy5 --- addons/base_setup/installer.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index 95462367f83..fd5eb444b3b 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -282,19 +282,17 @@ class specify_partner_terminology(osv.osv_memory): model_partner_ids = fields_obj.search(cr,uid, [('field_description','ilike','Partner')]) menu_partner_ids = menu_obj.search(cr,uid, [('name','ilike','Partner')]) # For Partner Translation - for p_id in model_partner_ids: - brw_fields_obj = fields_obj.browse(cr ,uid ,p_id , context=context) - partner_name = brw_fields_obj.model_id.model +',' + brw_fields_obj.name - self.translations_done(cr, uid, ids, partner_name, 'field', brw_fields_obj.field_description ,brw_fields_obj.field_description.replace('Partner',o.partner) ,context=context ) + for p_id in fields_obj.browse(cr ,uid ,model_partner_ids , context=context): + partner_name = p_id.model_id.model +',' + p_id.name + self.translations_done(cr, uid, ids, partner_name, 'field', p_id.field_description ,p_id.field_description.replace('Partner',o.partner) ,context=context ) - for m_id in menu_partner_ids: - brw_menu_obj = menu_obj.browse(cr ,uid ,m_id , context=context) - menu_partner_name1 = brw_menu_obj.name + for m_id in menu_obj.browse(cr ,uid ,menu_partner_ids , context=context): + menu_partner_name1 = m_id.name menu_partnr_name = 'ir.ui.menu' + ',' + 'name' - already_id = trans_obj.search(cr,uid, [('name','=',menu_partnr_name),('res_id','=',m_id)]) + already_id = trans_obj.search(cr,uid, [('name','=',menu_partnr_name),('res_id','=',m_id.id)]) if already_id: menu_partner_name1 = trans_obj.browse(cr, uid, already_id[0], context=context).src - self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name1.replace('Partner',o.partner), m_id ,context=context ) + self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name1.replace('Partner',o.partner), m_id.id ,context=context ) return {} From 33ddb73f3128a2b24b110570e423010158e13f48 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Thu, 19 May 2011 17:30:35 +0530 Subject: [PATCH 13/14] [IMP]Base_setup:Optimize Code of config wiz Terminology bzr revid: aag@tinyerp.co.in-20110519120035-qw92yr2pqnlbify3 --- addons/base_setup/installer.py | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index fd5eb444b3b..1cd2fbba7af 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -262,38 +262,33 @@ class specify_partner_terminology(osv.osv_memory): 'partner' :'Partner', } - def translations_done(self, cr, uid, ids, name, type, src, value,res_id = 0, context=None): + def translations_done(self, cr, uid, ids, name, type, src, value, res_id = 0, context=None): trans_obj = self.pool.get('ir.translation') user_obj = self.pool.get('res.users') - context_lang = user_obj.browse(cr ,uid ,uid , context=context).context_lang - already_id = trans_obj.search(cr,uid, [('name','=',name),('res_id','=',res_id)]) + context_lang = user_obj.browse(cr, uid, uid, context=context).context_lang + already_id = trans_obj.search(cr, uid, [('name','=',name),('res_id','=',res_id)]) for un_id in already_id: - trans_obj.write(cr ,uid, un_id, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) + trans_obj.write(cr, uid, un_id, {'name': name, 'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id }, context=context) if not already_id: - create_id = trans_obj.create(cr, uid, {'name': name ,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) + create_id = trans_obj.create(cr, uid, {'name': name,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) return {} def execute(self, cr, uid, ids, context=None): trans_obj = self.pool.get('ir.translation') fields_obj = self.pool.get('ir.model.fields') - menu_obj= self.pool.get('ir.ui.menu') + menu_obj = self.pool.get('ir.ui.menu') for o in self.browse(cr, uid, ids, context=context): - model_partner_ids = fields_obj.search(cr,uid, [('field_description','ilike','Partner')]) + model_partner_ids = fields_obj.search(cr, uid, [('field_description','ilike','Partner')]) menu_partner_ids = menu_obj.search(cr,uid, [('name','ilike','Partner')]) - # For Partner Translation - for p_id in fields_obj.browse(cr ,uid ,model_partner_ids , context=context): + for p_id in fields_obj.browse(cr ,uid ,model_partner_ids, context=context): partner_name = p_id.model_id.model +',' + p_id.name - self.translations_done(cr, uid, ids, partner_name, 'field', p_id.field_description ,p_id.field_description.replace('Partner',o.partner) ,context=context ) - - for m_id in menu_obj.browse(cr ,uid ,menu_partner_ids , context=context): + self.translations_done(cr, uid, ids, partner_name, 'field', p_id.field_description, p_id.field_description.replace('Partner',o.partner), context=context) + for m_id in menu_obj.browse(cr, uid, menu_partner_ids, context=context): menu_partner_name1 = m_id.name menu_partnr_name = 'ir.ui.menu' + ',' + 'name' - already_id = trans_obj.search(cr,uid, [('name','=',menu_partnr_name),('res_id','=',m_id.id)]) - if already_id: - menu_partner_name1 = trans_obj.browse(cr, uid, already_id[0], context=context).src - self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1 , menu_partner_name1.replace('Partner',o.partner), m_id.id ,context=context ) - + already_id = trans_obj.search(cr, uid, [('name','=',menu_partnr_name), ('res_id','=',m_id.id)]) + self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1, menu_partner_name1.replace('Partner',o.partner), m_id.id, context=context) return {} specify_partner_terminology() From 633fb5ba227ee0a2f579c5ea68864d20db2258ed Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 25 May 2011 14:47:36 +0200 Subject: [PATCH 14/14] [IMP] base_setup: specify your terminology wizard bzr revid: qdp-launchpad@openerp.com-20110525124736-t9fx3bhy9nyu2r96 --- addons/base_setup/installer.py | 55 +++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index 1cd2fbba7af..ecdafb22c8e 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -262,33 +262,54 @@ class specify_partner_terminology(osv.osv_memory): 'partner' :'Partner', } - def translations_done(self, cr, uid, ids, name, type, src, value, res_id = 0, context=None): + def make_translations(self, cr, uid, ids, name, type, src, value, res_id=0, context=None): trans_obj = self.pool.get('ir.translation') user_obj = self.pool.get('res.users') context_lang = user_obj.browse(cr, uid, uid, context=context).context_lang - already_id = trans_obj.search(cr, uid, [('name','=',name),('res_id','=',res_id)]) - for un_id in already_id: - trans_obj.write(cr, uid, un_id, {'name': name, 'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id }, context=context) - if not already_id: - create_id = trans_obj.create(cr, uid, {'name': name,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id':res_id}, context=context) + existing_trans_ids = trans_obj.search(cr, uid, [('name','=',name), ('lang','=',context_lang), ('type','=',type), ('src','=',src)]) + if existing_trans_ids: + trans_obj.write(cr, uid, existing_trans_ids, {'value': value}, context=context) + else: + create_id = trans_obj.create(cr, uid, {'name': name,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id': res_id}, context=context) return {} - def execute(self, cr, uid, ids, context=None): + def _case_insensitive_replace(ref_string, src, value): + import re + pattern = re.compile(src, re.IGNORECASE) + return pattern.sub(value, ref_string) trans_obj = self.pool.get('ir.translation') fields_obj = self.pool.get('ir.model.fields') menu_obj = self.pool.get('ir.ui.menu') + act_window_obj = self.pool.get('ir.actions.act_window') for o in self.browse(cr, uid, ids, context=context): - model_partner_ids = fields_obj.search(cr, uid, [('field_description','ilike','Partner')]) - menu_partner_ids = menu_obj.search(cr,uid, [('name','ilike','Partner')]) - for p_id in fields_obj.browse(cr ,uid ,model_partner_ids, context=context): - partner_name = p_id.model_id.model +',' + p_id.name - self.translations_done(cr, uid, ids, partner_name, 'field', p_id.field_description, p_id.field_description.replace('Partner',o.partner), context=context) - for m_id in menu_obj.browse(cr, uid, menu_partner_ids, context=context): - menu_partner_name1 = m_id.name - menu_partnr_name = 'ir.ui.menu' + ',' + 'name' - already_id = trans_obj.search(cr, uid, [('name','=',menu_partnr_name), ('res_id','=',m_id.id)]) - self.translations_done(cr, uid, ids, menu_partnr_name, 'model', menu_partner_name1, menu_partner_name1.replace('Partner',o.partner), m_id.id, context=context) + #translate label of field + field_ids = fields_obj.search(cr, uid, [('field_description','ilike','Customer')]) + for f_id in fields_obj.browse(cr ,uid, field_ids, context=context): + field_ref = f_id.model_id.model + ',' + f_id.name + self.make_translations(cr, uid, ids, field_ref, 'field', f_id.field_description, _case_insensitive_replace(f_id.field_description,'Customer',o.partner), context=context) + #translate help tooltip of field + for obj in self.pool.obj_pool.values(): + for field_name, field_rec in obj._columns.items(): + if field_rec.help.lower().count('customer'): + field_ref = obj._name + ',' + field_name + self.make_translations(cr, uid, ids, field_ref, 'help', field_rec.help, _case_insensitive_replace(field_rec.help,'Customer',o.partner), context=context) + #translate menuitems + menu_ids = menu_obj.search(cr,uid, [('name','ilike','Customer')]) + for m_id in menu_obj.browse(cr, uid, menu_ids, context=context): + menu_name = m_id.name + menu_ref = 'ir.ui.menu' + ',' + 'name' + self.make_translations(cr, uid, ids, menu_ref, 'model', menu_name, _case_insensitive_replace(menu_name,'Customer',o.partner), res_id=m_id.id, context=context) + #translate act window name + act_window_ids = act_window_obj.search(cr, uid, [('name','ilike','Customer')]) + for act_id in act_window_obj.browse(cr ,uid, act_window_ids, context=context): + act_ref = 'ir.actions.act_window' + ',' + 'name' + self.make_translations(cr, uid, ids, act_ref, 'model', act_id.name, _case_insensitive_replace(act_id.name,'Customer',o.partner), res_id=act_id.id, context=context) + #translate act window tooltips + act_window_ids = act_window_obj.search(cr, uid, [('help','ilike','Customer')]) + for act_id in act_window_obj.browse(cr ,uid, act_window_ids, context=context): + act_ref = 'ir.actions.act_window' + ',' + 'help' + self.make_translations(cr, uid, ids, act_ref, 'model', act_id.help, _case_insensitive_replace(act_id.help,'Customer',o.partner), res_id=act_id.id, context=context) return {} specify_partner_terminology()