pass force_demo=True on calling method for restart pool after installing extra module...
[odoo/odoo.git] / addons / profile_association / profile_association.py
1 ##############################################################################
2 #
3 # Copyright (c) 2004-2008 Tiny SPRL (http://tiny.be) All Rights Reserved.
4 #
5 # $Id: __terp__.py 8595 2008-06-16 13:00:21Z stw $
6 #
7 # WARNING: This program as such is intended to be used by professional
8 # programmers who take the whole responsability of assessing all potential
9 # consequences resulting from its eventual inadequacies and bugs
10 # End users who are looking for a ready-to-use solution with commercial
11 # garantees and support are strongly adviced to contract a Free Software
12 # Service Company
13 #
14 # This program is Free Software; you can redistribute it and/or
15 # modify it under the terms of the GNU General Public License
16 # as published by the Free Software Foundation; either version 2
17 # of the License, or (at your option) any later version.
18 #
19 # This program is distributed in the hope that it will be useful,
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22 # GNU General Public License for more details.
23 #
24 # You should have received a copy of the GNU General Public License
25 # along with this program; if not, write to the Free Software
26 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
27 ###############################################################################
28
29 from osv import fields, osv
30 import pooler
31
32
33 class profile_association_config_install_modules_wizard(osv.osv_memory):
34     _name='profile.association.config.install_modules_wizard'
35     _columns = {
36         'crm_configuration':fields.boolean('CRM & Calendars', help="This installs the customer relationship features like: leads and opportunities tracking, shared calendar, jobs tracking, bug tracker, and so on."),
37         'hr_expense':fields.boolean('Expenses Tracking', help="Tracks the personal expenses process, from the employee expense encoding, to the reimbursement of the employee up to the reinvoicing to the final customer."),
38         'project':fields.boolean('Project Management'),
39         'event' : fields.boolean('Events Organisation'),
40         'crm' : fields.boolean('Fund Raising'),
41     }
42     def action_cancel(self,cr,uid,ids,conect=None):
43         return {
44                 'view_type': 'form',
45                 "view_mode": 'form',
46                 'res_model': 'ir.module.module.configuration.wizard',
47                 'type': 'ir.actions.act_window',
48                 'target':'new',
49          }
50         
51     
52     def action_install(self, cr, uid, ids, context=None):
53         result=self.read(cr,uid,ids)        
54         mod_obj = self.pool.get('ir.module.module')
55         for res in result:
56             for r in res:
57                 if r<>'id' and res[r]:
58                     ids = mod_obj.search(cr, uid, [('name', '=', r)])
59                     mod_obj.action_install(cr, uid, ids, context=context)
60         cr.commit()
61         db, pool = pooler.restart_pool(cr.dbname,force_demo=True, update_module=True)
62         return {
63                 'view_type': 'form',
64                 "view_mode": 'form',
65                 'res_model': 'ir.module.module.configuration.wizard',
66                 'type': 'ir.actions.act_window',
67                 'target':'new',
68             }
69     
70     
71 profile_association_config_install_modules_wizard()
72
73 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: