2010-01-06 13:34:05 +00:00
# -*- 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
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 ' ] ,
2010-10-09 16:01:43 +00:00
}
2010-01-06 13:34:05 +00:00
_columns = {
# Generic modules
2010-01-24 17:34:04 +00:00
' 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, "
2010-01-24 18:05:52 +00:00
" generating plannings, etc... " ) ,
2010-01-24 17:34:04 +00:00
' knowledge ' : fields . boolean ( ' Knowledge Management ' ,
help = " Lets you install addons geared towards sharing knowledge "
" with and between your employees. " ) ,
' stock ' : fields . boolean ( ' Warehouse Management ' ,
2010-10-10 17:32:39 +00:00
help = " Helps you manage your inventory and main stock operations: delivery orders, receptions, etc. " ) ,
2010-01-24 18:05:52 +00:00
' mrp ' : fields . boolean ( ' Manufacturing ' ,
help = " Helps you manage your manufacturing processes and generate "
" reports on those processes. " ) ,
2010-10-09 16:01:43 +00:00
' account_voucher ' : fields . boolean ( ' Invoicing ' ,
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 " ) ,
2010-01-24 18:05:52 +00:00
' 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 ' ,
2010-09-21 06:59:49 +00:00
help = " Helps you manage your human resources by encoding your employees structure, generating work sheets, tracking attendance and more. " ) ,
2010-01-24 18:05:52 +00:00
' 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. " ) ,
2010-09-14 13:59:12 +00:00
' profile_tools ' : fields . boolean ( ' Extra Tools ' ,
2010-09-01 12:26:56 +00:00
help = " Lets you install various interesting but non-essential tools "
" like Survey, Lunch and Ideas box. " ) ,
2010-01-24 18:05:52 +00:00
' report_designer ' : fields . boolean ( ' Advanced Reporting ' ,
help = " Lets you install various tools to simplify and enhance "
" OpenERP ' s report creation. " ) ,
2010-01-06 13:34:05 +00:00
# Vertical modules
2010-06-14 10:28:26 +00:00
' product_expiry ' : fields . boolean ( ' Food Industry ' ,
2010-09-01 12:26:56 +00:00
help = " Installs a preselected set of OpenERP applications "
2010-09-21 06:59:49 +00:00
" which will help you manage your industry. " ) ,
2010-07-01 10:56:50 +00:00
' association ' : fields . boolean ( ' Associations ' ,
2010-01-24 18:05:52 +00:00
help = " Installs a preselected set of OpenERP "
" applications which will help you manage your association "
" more efficiently. " ) ,
2010-08-04 13:56:17 +00:00
' auction ' : fields . boolean ( ' Auction Houses ' ,
2010-01-24 18:05:52 +00:00
help = " Installs a preselected set of OpenERP "
" applications selected to help you manage your auctions "
" as well as the business processes around them. " ) ,
2010-01-06 13:34:05 +00:00
}
2010-04-30 06:53:45 +00:00
2010-08-09 08:17:32 +00:00
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
2010-05-10 07:06:07 +00:00
2010-09-03 06:17:18 +00:00
def _if_misc_tools ( self , cr , uid , ids , context = None ) :
2010-10-09 16:01:43 +00:00
return [ ' profile_tools ' ]
2010-09-03 06:17:18 +00:00
2010-09-14 13:59:12 +00:00
def onchange_moduleselection ( self , cr , uid , ids , * args , * * kargs ) :
value = { }
# Calculate progress
2010-08-09 11:01:10 +00:00
closed , total = self . get_current_progress ( cr , uid )
progress = round ( 100. * closed / ( total + len ( filter ( None , args ) ) ) )
2010-09-14 13:59:12 +00:00
value . update ( { ' progress ' : progress } )
2010-08-09 11:01:10 +00:00
if progress < 10. :
progress = 10.
2011-03-01 07:21:34 +00:00
2010-09-14 13:59:12 +00:00
return { ' value ' : value }
2011-03-01 07:21:34 +00:00
def execute ( self , cr , uid , ids , context = None ) :
if context is None :
context = { }
modules = self . pool . get ( ' ir.module.module ' )
modules_selected = [ ]
datas = self . read ( cr , uid , ids , context = context ) [ 0 ]
key = datas . keys ( )
key . remove ( " id " )
key . remove ( " progress " )
name_list = [ ]
for mod in key :
if datas [ mod ] == 1 :
modules_selected . append ( mod )
inst = modules . browse (
cr , uid ,
modules . search ( cr , uid ,
[ ( ' name ' , ' in ' , modules_selected )
] ,
context = context ) ,
context = context )
for i in inst :
if i . state == ' uninstalled ' :
sect_mod_id = i . id
modules . button_install ( cr , uid , [ sect_mod_id ] , context = context )
elif i . state == ' installed ' :
if modules_selected :
for instl in modules_selected :
cr . execute ( " update ir_actions_todo set restart= ' on_trigger ' , state= ' open ' from ir_model_data as data where data.res_id = ir_actions_todo.id and data.model = ' ir.actions.todo ' and data.module like ' % " + instl + " % ' " )
return
2010-01-06 13:34:05 +00:00
base_setup_installer ( )