[add] base_setup: modules installer

bzr revid: xmo@tinyerp.com-20100106133405-majde4n8llrzxuh4
This commit is contained in:
Xavier Morel 2010-01-06 14:34:05 +01:00
parent 874196680b
commit df11608dd3
4 changed files with 153 additions and 1 deletions

View File

@ -19,6 +19,7 @@
#
##############################################################################
import installer
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -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,

View File

@ -0,0 +1,71 @@
<openerp>
<data>
<record id="view_base_setup_installer" model="ir.ui.view">
<field name="name">base.setup.installer.view</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<data>
<form position="attributes"><attribute name="string">
Base Setup Modules Installation
</attribute></form>
<group string="res_config_contents" position="replace">
<separator string="Install Modules" colspan="4"/>
<image name="gtk-dialog-info"/>
<newline/>
<label align="0.0" string=" Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Cras metus
augue, ultricies et vehicula id, fringilla quis
mauris. Vestibulum fringilla ipsum sit amet est
adipiscing eget euismod velit semper. Proin non mauris
velit. Donec malesuada nisi sed augue viverra commodo
sagittis nisi rutrum. Cras vitae libero nunc, a
molestie sapien. Proin et augue sit amet est egestas
fermentum ut eu lacus. Etiam nisi orci, volutpat
aliquam viverra interdum, vehicula iaculis
lectus. Mauris ligula sapien, auctor in pharetra non,
ultrices quis odio."/>
<group>
<separator string="Generic Modules" colspan="4"/>
<field name="crm"/> <field name="sale"/>
<field name="project"/> <field name="knowledge"/>
<field name="stock"/> <field name="mrp"/>
<field name="account"/>
<field name="charts" attrs="{readonly:[('account','=',False)]}"/>
<field name="purchase"/> <field name="hr"/>
<field name="pos"/> <field name="marketing"/>
<field name="tools"/> <field name="report_design"/>
<separator string="Generic Modules" colspan="4"/>
<field name="profile_association"/>
<field name="profile_training"/>
<field name="profile_auction"/>
<field name="profile_bookstore"/>
</group>
</group>
<xpath expr='//button[@name="action_skip"]' position='replace'/>
<xpath expr='//button[@name="action_next"]' position='attributes'>
<attribute name='string'>Install Modules</attribute>
</xpath>
</data>
</field>
</record>
<record id="action_base_setup_installer" model="ir.actions.act_window">
<field name="name">Base Setup Modules Installation</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">base.setup.installer</field>
<field name="view_id" ref="view_base_setup_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="base_setup_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_installer"/>
<field name="sequence">1</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,78 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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()