From 4b3d6391783b20cc647dad949040d2adfd92f140 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 15 Mar 2011 15:32:29 +0100 Subject: [FIX] implicit 'position inside' alteration in view inheritance removed, needs to be explicit bzr revid: xmo@openerp.com-20110315143229-9x976mbq2lxueb16 --- addons/base_setup/base_setup_installer.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index 13906abe6ba..6f17ca6bcdf 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -24,7 +24,7 @@ Install Applications - + -- cgit v1.2.3 From 1f5aa0643ffee36327151e8e2b30315c883e0cd5 Mon Sep 17 00:00:00 2001 From: "Hardik Ansodariy (OpenERP)" Date: Wed, 6 Jul 2011 17:59:28 +0530 Subject: [IMP]: module is defined by its complexity bzr revid: han@tinyerp.com-20110706122928-xvcpdu5inpkganfy --- addons/base_setup/__openerp__.py | 1 + 1 file changed, 1 insertion(+) (limited to 'addons/base_setup') diff --git a/addons/base_setup/__openerp__.py b/addons/base_setup/__openerp__.py index 420deb46bfb..2d534917da3 100644 --- a/addons/base_setup/__openerp__.py +++ b/addons/base_setup/__openerp__.py @@ -24,6 +24,7 @@ 'name': 'Base Setup', 'version': '1.0', 'category': 'Tools', + 'complexity': "easy", 'description': """ This module helps to configure the system at the installation of a new database. ================================================================================ -- cgit v1.2.3 From a5fdb75ad6a54db8dc3d5d68d8551cc093f7be0e Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 14 Jul 2011 12:37:25 +0200 Subject: [FIX] ir.actions.todo are now unskippable bzr revid: xmo@openerp.com-20110714103725-6r6j35qegobhvx5u --- addons/base_setup/base_setup_installer.xml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index e8168a69ea9..50ea6fd149e 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -75,7 +75,7 @@ 2 - normal_recurring + recurring @@ -126,7 +126,6 @@ normal - skip @@ -147,7 +146,6 @@ normal current - skip @@ -201,7 +199,6 @@ normal - skip @@ -283,7 +280,6 @@ normal - skip @@ -302,7 +298,6 @@ 1 normal - skip -- cgit v1.2.3 From 02e25761c561f178e58d686306d839303f796ac5 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 18 Jul 2011 11:40:03 +0200 Subject: [FIX] rename state 'cancel' to 'hidden'in ir.actions.todo objects bzr revid: xmo@openerp.com-20110718094003-oonuapw8ul6tw4ax --- addons/base_setup/base_setup_installer.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index 50ea6fd149e..c51acb79127 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -220,7 +220,7 @@ normal current 1000 - cancel + hidden @@ -229,7 +229,7 @@ normal - cancel + hidden -- cgit v1.2.3 From 5e05bcca22aa6ddfa810fdbdf8fe6944e1d11331 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 18 Jul 2011 16:02:02 +0200 Subject: [ADD] 'Add More Features' item bzr revid: xmo@openerp.com-20110718140202-8kerjryzu39blj1k --- addons/base_setup/base_setup_installer.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index c51acb79127..586de522a07 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -78,6 +78,25 @@ recurring + + Start Configuration + + code + + + + + + Add More Features + ir.ui.menu + + + -- cgit v1.2.3 From 7a2c4c59a7ac481618b411f9e5c65ca82483c0b3 Mon Sep 17 00:00:00 2001 From: "Mayur Maheshwari (OpenERP)" Date: Wed, 27 Jul 2011 17:48:34 +0530 Subject: [IMP]base_setup: Label Name Improved in terminology bzr revid: mma@tinyerp.com-20110727121834-o57c5bs8v7a4yhn9 --- addons/base_setup/installer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index 381164e69d0..16bf6cf5555 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -262,7 +262,7 @@ class specify_partner_terminology(osv.osv_memory): ('Guest','Guest'), ('Tenant','Tenant') ], - 'Choose how to call a customer', required=True ), + 'Customer / Partner / Patient ?', required=True ), } _defaults={ 'partner' :'Partner', -- cgit v1.2.3 From 1addfdc3258e21b42d76f7207974eee54ad19dc7 Mon Sep 17 00:00:00 2001 From: "Mayur Maheshwari (OpenERP)" Date: Thu, 28 Jul 2011 17:45:48 +0530 Subject: [IMP]base_setup: Improvement is done bzr revid: mma@tinyerp.com-20110728121548-lfbq6gx7m7bkqx0h --- addons/base_setup/base_setup_installer.xml | 2 +- addons/base_setup/installer.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index e8168a69ea9..f418a47ad93 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -268,7 +268,7 @@ - Specify Your Terminology + Customer / Partner / Patient ? ir.actions.act_window specify.partner.terminology form diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py index 16bf6cf5555..fed316eb39e 100644 --- a/addons/base_setup/installer.py +++ b/addons/base_setup/installer.py @@ -262,7 +262,7 @@ class specify_partner_terminology(osv.osv_memory): ('Guest','Guest'), ('Tenant','Tenant') ], - 'Customer / Partner / Patient ?', required=True ), + 'Choose how to call a Customer', required=True ), } _defaults={ 'partner' :'Partner', -- cgit v1.2.3 From 3dc62dcb6f86c9e3ddfb503df53d72bd479e6704 Mon Sep 17 00:00:00 2001 From: "Mayur Maheshwari (OpenERP)" Date: Fri, 29 Jul 2011 16:18:00 +0530 Subject: [IMP]base_setup:Improvement is done in the proper branch bzr revid: mma@tinyerp.com-20110729104800-8cy1r1u7c5vjviam --- addons/base_setup/base_setup_installer.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index f418a47ad93..722f7a6de45 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -132,13 +132,13 @@ - Import or create customers + Import or Create Customers ir.actions.act_window res.partner form tree,form - Create some customers, suppliers and their contacts manually or import a CSV spreadsheet by clicking on the import link + Create some Customers, Suppliers and their contacts manually from this form or you can import your existing partners by CSV spreadsheet from "Import Data" wizard -- cgit v1.2.3 From cc13113641442cd34ea5587ad109477efe8b1f0d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 29 Jul 2011 15:48:10 +0200 Subject: [REF] reformat xml files before applying automated search&replace on them bzr revid: xmo@openerp.com-20110729134810-oiqptqs2omvo7o7c --- addons/base_setup/base_setup_installer.xml | 57 +++++++++++++----------------- 1 file changed, 25 insertions(+), 32 deletions(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index 586de522a07..051bcf0c594 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -14,9 +14,9 @@ Select the Applications you want your system to cover. If you are not sure about your exact needs at this stage, you can easily install them later. - - - 15 + + + 15 Install @@ -82,15 +82,10 @@ Start Configuration code - + - + Add More Features ir.ui.menu @@ -118,8 +113,8 @@ Configure - - + + @@ -179,23 +174,22 @@
Define default users preferences
- - Define default users preferences + + Define default users preferences - + Specify default values. This will set the default values for each new user, each user is free to change his own preferences. - - - 12 + + + 12 - - - - + + + + @@ -263,20 +257,19 @@
Specify Your Terminology
- - Specify Your Terminology + + Specify Your Terminology - + Based on the industry needs you can use this wizard to change the terminologies for Partners. - - - 12 + + + 12 - + @@ -320,4 +313,4 @@
- + \ No newline at end of file -- cgit v1.2.3 From 09cf4d40d0e8e558b8847bcb8853eac37a738285 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 29 Jul 2011 16:03:24 +0200 Subject: [FIX] convert ir.actions.todo fields to match model definition changes * type = special => type = automatic * type = recurring | normal => type = normal * default type special => normal * state = hidden => state = done bzr revid: xmo@openerp.com-20110729140324-0nxus4p8ufj46z9y --- addons/base_setup/base_setup_installer.xml | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'addons/base_setup') diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml index 051bcf0c594..c7a584bb743 100644 --- a/addons/base_setup/base_setup_installer.xml +++ b/addons/base_setup/base_setup_installer.xml @@ -75,7 +75,6 @@ 2 - recurring @@ -139,7 +138,6 @@ - normal @@ -158,9 +156,7 @@ - normal - current - + @@ -211,7 +207,6 @@ - normal @@ -230,10 +225,8 @@ - normal - current 1000 - hidden + done @@ -241,8 +234,7 @@ @@ -291,7 +283,6 @@ - normal @@ -309,8 +300,7 @@ 1 - normal - \ No newline at end of file + -- cgit v1.2.3 From 88a2b980f8ab39b96d37c832ac076d759c538102 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Fri, 19 Aug 2011 03:13:12 +0200 Subject: [IMP] base_setup cleanups bzr revid: al@openerp.com-20110819011312-ekjioj2f1bloom3i --- addons/base_setup/__init__.py | 82 +----- addons/base_setup/__openerp__.py | 12 +- addons/base_setup/base_setup.py | 315 ++++++++++++++++++++ addons/base_setup/base_setup_data.xml | 46 --- addons/base_setup/base_setup_demo.xml | 6 - addons/base_setup/base_setup_installer.xml | 306 ------------------- addons/base_setup/base_setup_views.xml | 246 ++++++++++++++++ addons/base_setup/installer.py | 324 --------------------- addons/base_setup/wizard/__init__.py | 25 -- addons/base_setup/wizard/res_company_logo.py | 49 ---- addons/base_setup/wizard/res_company_logo_view.xml | 48 --- 11 files changed, 567 insertions(+), 892 deletions(-) create mode 100644 addons/base_setup/base_setup.py delete mode 100644 addons/base_setup/base_setup_data.xml delete mode 100644 addons/base_setup/base_setup_demo.xml delete mode 100644 addons/base_setup/base_setup_installer.xml create mode 100644 addons/base_setup/base_setup_views.xml delete mode 100644 addons/base_setup/installer.py delete mode 100644 addons/base_setup/wizard/__init__.py delete mode 100644 addons/base_setup/wizard/res_company_logo.py delete mode 100644 addons/base_setup/wizard/res_company_logo_view.xml (limited to 'addons/base_setup') diff --git a/addons/base_setup/__init__.py b/addons/base_setup/__init__.py index 2dab90b90b2..82fe6ca3601 100644 --- a/addons/base_setup/__init__.py +++ b/addons/base_setup/__init__.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-2011 OpenERP SA (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,84 +19,6 @@ # ############################################################################## -import installer -import wizard -import os -import base64 -import random -import tools -from osv import fields, osv -import netsvc -from tools.translate import _ - -class base_setup_config_choice(osv.osv_memory): - """ - """ - _name = 'base.setup.config' - logger = netsvc.Logger() - - def _get_image(self, cr, uid, context=None): - file_no = str(random.randint(1,3)) - path = os.path.join('base','res','config_pixmaps/%s.png'%file_no) - file_data = tools.file_open(path,'rb').read() - return base64.encodestring(file_data) - - def get_users(self, cr, uid, context=None): - user_obj = self.pool.get('res.users') - user_ids = user_obj.search(cr, uid, []) - user_list = [] - user_tmpl_nopass = _(' - %s :\n\t\tLogin : %s') - user_tmpl_pass = _(' - %s :\n\t\tLogin : %s \n\t\tPassword : %s') - for user in user_obj.browse(cr, uid, user_ids, context=context): - if user.password and not user.password.startswith('$'): - user_list.append(user_tmpl_pass % (user.name, user.login, user.password)) - else: - user_list.append(user_tmpl_nopass % (user.name, user.login)) - return _('The following users have been installed : \n')+ '\n'.join(user_list) - - _columns = { - 'installed_users':fields.text('Installed Users', readonly=True), - 'config_logo' : fields.binary('Image', readonly=True), - } - - _defaults = { - 'installed_users':get_users, - 'config_logo' : _get_image - } - - def reset_menu(self, cr, uid, context=None): - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - menu_id = user._get_menu() - user.write({'action_id': False, - 'menu_id': menu_id}) - return self.pool.get('ir.actions.act_window').browse(cr, uid, menu_id, context=context) - - def menu(self, cr, uid, ids, context=None): - menu = self.reset_menu(cr, uid, context=context) - - if menu.view_id.id: - view_id = (menu.view_id.id, menu.view_id.name) - else: - view_id = False - - return { - 'name': menu.name, - 'type': menu.type, - 'view_id': view_id, - 'domain': menu.domain, - 'res_model': menu.res_model, - 'src_model': menu.src_model, - 'view_type': menu.view_type, - 'view_mode': menu.view_mode, - 'views': menu.views, - } - - def config(self, cr, uid, ids, context=None): - self.reset_menu(cr, uid, context=context) - return self.pool.get('res.config').next(cr, uid, [], context=context) - -base_setup_config_choice() - +import base_setup # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/base_setup/__openerp__.py b/addons/base_setup/__openerp__.py index 0c3385b4dab..c483b4324c1 100644 --- a/addons/base_setup/__openerp__.py +++ b/addons/base_setup/__openerp__.py @@ -29,19 +29,15 @@ This module helps to configure the system at the installation of a new database. ================================================================================ -It allows you to choose the type of interface and select from a list of applications to install. +Shows you a list of applications features to install from. -It also helps to easily configure your company. """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['base'], - 'init_xml': ['base_setup_data.xml'], - 'update_xml': ['security/ir.model.access.csv', - 'wizard/res_company_logo_view.xml', - 'base_setup_installer.xml', - ], - 'demo_xml': ['base_setup_demo.xml'], + 'init_xml': [], + 'update_xml': ['security/ir.model.access.csv', 'base_setup_views.xml' ], + 'demo_xml': [], 'installable': True, 'active': True, 'certificate': '0086711085869', diff --git a/addons/base_setup/base_setup.py b/addons/base_setup/base_setup.py new file mode 100644 index 00000000000..340c2f93044 --- /dev/null +++ b/addons/base_setup/base_setup.py @@ -0,0 +1,315 @@ +# -*- 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 . +# +############################################################################## +import pytz + +import pooler +import tools +from osv import fields, osv +from tools.translate import _ + +#Application and feature chooser, this could be done by introspecting ir.modules + +class base_setup_installer(osv.osv_memory): + _name = 'base.setup.installer' + _inherit = 'res.config.installer' + + _install_if = { + ('sale','crm'): ['sale_crm'], + ('sale','project'): ['project_mrp'], + } + _columns = { + # Generic modules + 'crm':fields.boolean('Customer Relationship Management', + help="Helps you track and manage relations with customers such as" + " leads, requests or issues. Can automatically send " + "reminders, escalate requests or trigger business-specific " + "actions based on standard events."), + 'sale':fields.boolean('Sales Management', + help="Helps you handle your quotations, sale orders and invoicing" + "."), + 'project':fields.boolean('Project Management', + help="Helps you manage your projects and tasks by tracking them, " + "generating plannings, etc..."), + 'knowledge':fields.boolean('Knowledge Management', + help="Lets you install addons geared towards sharing knowledge " + "with and between your employees."), + 'stock':fields.boolean('Warehouse Management', + help="Helps you manage your inventory and main stock operations: delivery orders, receptions, etc."), + 'mrp':fields.boolean('Manufacturing', + help="Helps you manage your manufacturing processes and generate " + "reports on those processes."), + 'account_voucher':fields.boolean('Invoicing & Payments', + help="Allows you to create your invoices and track the payments. It is an easier version of the accounting module for managers who are not accountants."), + 'account_accountant':fields.boolean('Accounting & Finance', + help="Helps you handle your accounting needs, if you are not an accountant, we suggest you to install only the Invoicing "), + 'purchase':fields.boolean('Purchase Management', + help="Helps you manage your purchase-related processes such as " + "requests for quotations, supplier invoices, etc..."), + 'hr':fields.boolean('Human Resources', + help="Helps you manage your human resources by encoding your employees structure, generating work sheets, tracking attendance and more."), + 'point_of_sale':fields.boolean('Point of Sales', + help="Helps you get the most out of your points of sales with " + "fast sale encoding, simplified payment mode encoding, " + "automatic picking lists generation and more."), + 'marketing':fields.boolean('Marketing', + help="Helps you manage your marketing campaigns step by step."), + 'profile_tools':fields.boolean('Extra Tools', + help="Lets you install various interesting but non-essential tools " + "like Survey, Lunch and Ideas box."), + 'report_designer':fields.boolean('Advanced Reporting', + help="Lets you install various tools to simplify and enhance " + "OpenERP's report creation."), + # Vertical modules + 'product_expiry':fields.boolean('Food Industry', + help="Installs a preselected set of OpenERP applications " + "which will help you manage your industry."), + 'association':fields.boolean('Associations', + help="Installs a preselected set of OpenERP " + "applications which will help you manage your association " + "more efficiently."), + 'auction':fields.boolean('Auction Houses', + help="Installs a preselected set of OpenERP " + "applications selected to help you manage your auctions " + "as well as the business processes around them."), + } + + def _if_knowledge(self, cr, uid, ids, context=None): + if self.pool.get('res.users').browse(cr, uid, uid, context=context)\ + .view == 'simple': + return ['document_ftp'] + return None + + def _if_misc_tools(self, cr, uid, ids, context=None): + return ['profile_tools'] + + def onchange_moduleselection(self, cr, uid, ids, *args, **kargs): + value = {} + # Calculate progress + closed, total = self.get_current_progress(cr, uid) + progress = round(100. * closed / (total + len(filter(None, args)))) + value.update({'progress':progress}) + if progress < 10.: + progress = 10. + + return {'value':value} + + + def execute(self, cr, uid, ids, context=None): + module_pool = self.pool.get('ir.module.module') + modules_selected = [] + datas = self.read(cr, uid, ids, context=context)[0] + for mod in datas.keys(): + if mod in ('id', 'progress'): + continue + if datas[mod] == 1: + modules_selected.append(mod) + + module_ids = module_pool.search(cr, uid, [('name', 'in', modules_selected)], context=context) + need_install = False + for module in module_pool.browse(cr, uid, module_ids, context=context): + if module.state == 'uninstalled': + module_pool.state_update(cr, uid, [module.id], 'to install', ['uninstalled'], context) + need_install = True + cr.commit() + elif module.state == 'installed': + cr.execute("update ir_actions_todo set state='open' \ + from ir_model_data as data where data.res_id = ir_actions_todo.id \ + and ir_actions_todo.type='special'\ + and data.model = 'ir.actions.todo' and data.module=%s", (module.name, )) + if need_install: + self.pool = pooler.restart_pool(cr.dbname, update_module=True)[1] + return + +#Migrate data from another application Conf wiz + +class migrade_application_installer_modules(osv.osv_memory): + _name = 'migrade.application.installer.modules' + _inherit = 'res.config.installer' + _columns = { + 'import_saleforce': fields.boolean('Import Saleforce', + help="For Import Saleforce"), + 'import_sugarcrm': fields.boolean('Import Sugarcrm', + help="For Import Sugarcrm"), + 'sync_google_contact': fields.boolean('Sync Google Contact', + help="For Sync Google Contact"), + 'quickbooks_ippids': fields.boolean('Quickbooks Ippids', + help="For Quickbooks Ippids"), + } + +class product_installer(osv.osv_memory): + _name = 'product.installer' + _inherit = 'res.config' + _columns = { + 'customers': fields.selection([('create','Create'), ('import','Import')], 'Customers', size=32, required=True, help="Import or create customers"), + + } + _defaults = { + 'customers': 'create', + } + + def execute(self, cr, uid, ids, context=None): + if context is None: + context = {} + data_obj = self.pool.get('ir.model.data') + val = self.browse(cr, uid, ids, context=context)[0] + if val.customers == 'create': + id2 = data_obj._get_id(cr, uid, 'base', 'view_partner_form') + if id2: + id2 = data_obj.browse(cr, uid, id2, context=context).res_id + return { + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'res.partner', + 'views': [(id2, 'form')], + 'type': 'ir.actions.act_window', + 'target': 'current', + 'nodestroy':False, + } + if val.customers == 'import': + return {'type': 'ir.actions.act_window'} + +# Define users preferences for new users (ir.values) + +def _lang_get(self, cr, uid, context=None): + obj = self.pool.get('res.lang') + ids = obj.search(cr, uid, [('translatable','=',True)]) + res = obj.read(cr, uid, ids, ['code', 'name'], context=context) + res = [(r['code'], r['name']) for r in res] + return res + +def _tz_get(self,cr,uid, context=None): + return [(x, x) for x in pytz.all_timezones] + +class user_preferences_config(osv.osv_memory): + _name = 'user.preferences.config' + _inherit = 'res.config' + _columns = { + 'context_tz': fields.selection(_tz_get, 'Timezone', size=64, + help="Set default for new user's timezone, used to perform timezone conversions " + "between the server and the client."), + 'context_lang': fields.selection(_lang_get, 'Language', required=True, + help="Sets default language for the all user interface, when UI " + "translations are available. If you want to Add new Language, you can add it from 'Load an Official Translation' wizard from 'Administration' menu."), + 'view': fields.selection([('simple','Simplified'), + ('extended','Extended')], + 'Interface', required=True, help= "If you use OpenERP for the first time we strongly advise you to select the simplified interface, which has less features but is easier. You can always switch later from the user preferences." ), + 'menu_tips': fields.boolean('Display Tips', help="Check out this box if you want to always display tips on each menu action"), + + } + _defaults={ + 'view' : lambda self,cr,uid,*args: self.pool.get('res.users').browse(cr, uid, uid).view or 'simple', + 'context_lang' : 'en_US', + 'menu_tips' : True + } + + def default_get(self, cr, uid, fields, context=None): + if context is None: + context = {} + res = super(user_preferences_config, self).default_get(cr, uid, fields, context=context) + res_default = self.pool.get('ir.values').get(cr, uid, 'default', False, ['res.users']) + for id, field, value in res_default: + res.update({field: value}) + return res + + def execute(self, cr, uid, ids, context=None): + user_obj = self.pool.get('res.users') + user_ids = user_obj.search(cr, uid, [], context=context) + for o in self.browse(cr, uid, ids, context=context): + user_obj.write(cr , uid, user_ids ,{'context_tz' : o.context_tz, 'context_lang' : o.context_lang, 'view' : o.view, 'menu_tips' : o.menu_tips}, context=context) + ir_values_obj = self.pool.get('ir.values') + ir_values_obj.set(cr, uid, 'default', False, 'context_tz', ['res.users'], o.context_tz) + ir_values_obj.set(cr, uid, 'default', False, 'context_lang', ['res.users'], o.context_lang) + ir_values_obj.set(cr, uid, 'default', False, 'view', ['res.users'], o.view) + ir_values_obj.set(cr, uid, 'default', False, 'menu_tips', ['res.users'], o.menu_tips) + return {} + +# Specify Your Terminology + +class specify_partner_terminology(osv.osv_memory): + _name = 'base.setup.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 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 + existing_trans_ids = trans_obj.search(cr, uid, [('name','=',name), ('lang','=',context_lang), ('type','=',type), ('src','=',src), ('res_id','=',res_id)]) + 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): + #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 {} + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_setup/base_setup_data.xml b/addons/base_setup/base_setup_data.xml deleted file mode 100644 index 2c4f8f46323..00000000000 --- a/addons/base_setup/base_setup_data.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - Setup - base.setup.config - form - -
- - - - - - - - - - - - -