diff --git a/addons/base_setup/__init__.py b/addons/base_setup/__init__.py index 250123c8f54..dc2b3dbc11a 100644 --- a/addons/base_setup/__init__.py +++ b/addons/base_setup/__init__.py @@ -19,6 +19,7 @@ # ############################################################################## +import installer import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_setup/__terp__.py b/addons/base_setup/__terp__.py index 660206a20be..898afe503fb 100644 --- a/addons/base_setup/__terp__.py +++ b/addons/base_setup/__terp__.py @@ -41,7 +41,9 @@ 'website': 'http://www.openerp.com', 'depends': ['base'], 'init_xml': ['base_setup_data.xml'], - 'update_xml': ['security/ir.model.access.csv', 'base_setup_wizard.xml'], + 'update_xml': ['security/ir.model.access.csv', + 'base_setup_wizard.xml', + 'base_setup_installer.xml'], 'demo_xml': ['base_setup_demo.xml'], 'installable': True, 'active': True, diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml new file mode 100644 index 00000000000..b5735d7075b --- /dev/null +++ b/addons/base_setup/base_setup_installer.xml @@ -0,0 +1,71 @@ + + + + base.setup.installer.view + base.setup.installer + form + + + +
+ Base Setup Modules Installation +
+ + + + + + + + + + Install Modules + +
+
+
+ + + Base Setup Modules Installation + ir.actions.act_window + base.setup.installer + + form + form + new + + + + + 1 + +
+
diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py new file mode 100644 index 00000000000..8aa2ec23ed4 --- /dev/null +++ b/addons/base_setup/installer.py @@ -0,0 +1,78 @@ +# -*- 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 +from itertools import chain +from operator import itemgetter +import netsvc + +class base_setup_installer(osv.osv_memory): + _name = 'base.setup.installer' + _inherit = 'res.config.installer' + + def _get_charts(self, cr, uid, context=None): + modules = self.pool.get('ir.module.module') + ids = modules.search(cr, uid, [('category_id','=','Account Charts'), + ('state','!=','installed')]) + return list( + sorted(((m.name, m.shortdesc) + for m in modules.browse(cr, uid, ids)), + key=itemgetter(1))) + + def _if_account(self, cr, uid, ids, context=None): + chart = self.read(cr, uid, ids, ['charts'], + context=context)[0]['charts'] + self.logger.notifyChannel( + 'installer', netsvc.LOG_DEBUG, + 'Addon "account" selected, installing chart of accounts %s'%chart) + return [chart] + + _install_if = { + ('sale','crm'): ['sale_crm'], + ('sale','project'): ['project_mrp'], + } + _columns = { + # Generic modules + 'crm':fields.boolean('Customer Relationship Management'), + 'sale':fields.boolean('Sales Management'), + 'project':fields.boolean('Project Management'), + 'knowledge':fields.boolean('Knowledge Management'), + 'stock':fields.boolean('Warehouse Management'), + 'mrp':fields.boolean('Manufacturing'), + 'account':fields.boolean('Financial & Accounting'), + 'charts':fields.selection(_get_charts, 'Chart of Accounts', + readonly=True), + 'purchase':fields.boolean('Purchase Management'), + 'hr':fields.boolean('Human Resources'), + 'pos':fields.boolean('Point of Sales'), + 'marketing':fields.boolean('Marketing'), + 'tools':fields.boolean('Miscellaneous Tools'), + 'report_design':fields.boolean('Advanced Reporting'), + # Vertical modules + 'profile_association':fields.boolean('Associations'), + 'profile_training':fields.boolean('Training Centers'), + 'profile_auction':fields.boolean('Auction Houses'), + 'profile_bookstore':fields.boolean('Book Stores'), + } + _defaults = { + 'crm': True, + } +base_setup_installer() +