[IMP] When trying to launch the Chart of Accounts configuration wizard, there is now a check of the number of unconfigured companies. This prevents from having a wizard impossible to execute due to the lack of company_id. Also cleaned a bit the code in account_view.xml (ir_actions_server_action_wizard_multi_chart id).
bzr revid: tde@openerp.com-20120213150322-a8d6kx5047r0sdd9
This commit is contained in:
parent
169534b38c
commit
901a88bf25
|
@ -2491,11 +2491,16 @@
|
|||
<field name="model_id" ref="base.model_ir_actions_todo"/>
|
||||
<field eval="5" name="sequence"/>
|
||||
<field name="code">
|
||||
act_window_ids = pool.get('ir.actions.act_window').search(cr, uid,[('name', 'in', ('Accounting Chart Configuration', 'Generate Chart of Accounts from a Chart Template'))], context=context)
|
||||
account_installer_obj = self.pool.get('account.installer')
|
||||
account_installer_obj.check_unconfigured_cmp(cr, uid, context=context)
|
||||
action_ids = []
|
||||
ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_wizard_multi_chart')
|
||||
if ref:
|
||||
action_ids += [ref[1]]
|
||||
ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_account_configuration_installer')
|
||||
if ref:
|
||||
act_window_ids += [ref[1]]
|
||||
todo_ids = pool.get('ir.actions.todo').search(cr, uid, [('action_id', 'in', act_window_ids)], context=context)
|
||||
action_ids += [ref[1]]
|
||||
todo_ids = pool.get('ir.actions.todo').search(cr, uid, [('action_id', 'in', action_ids)], context=context)
|
||||
pool.get('ir.actions.todo').write(cr, uid, todo_ids, {'state':'open'}, context=context)
|
||||
action = pool.get('res.config').next(cr, uid, [], context)
|
||||
</field>
|
||||
|
|
|
@ -78,15 +78,23 @@ class account_installer(osv.osv_memory):
|
|||
'has_default_company': _default_has_default_company,
|
||||
'charts': 'configurable'
|
||||
}
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
res = super(account_installer, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
|
||||
|
||||
def get_unconfigured_cmp(self, cr, uid, context=None):
|
||||
cmp_select = []
|
||||
company_ids = self.pool.get('res.company').search(cr, uid, [], context=context)
|
||||
#display in the widget selection of companies, only the companies that haven't been configured yet (but don't care about the demo chart of accounts)
|
||||
cr.execute("SELECT company_id FROM account_account WHERE active = 't' AND account_account.parent_id IS NULL AND name != %s", ("Chart For Automated Tests",))
|
||||
configured_cmp = [r[0] for r in cr.fetchall()]
|
||||
unconfigured_cmp = list(set(company_ids)-set(configured_cmp))
|
||||
return unconfigured_cmp
|
||||
|
||||
def check_unconfigured_cmp(self, cr, uid, context=None):
|
||||
if not self.get_unconfigured_cmp(cr, uid, context=context):
|
||||
raise osv.except_osv(_('No unconfigured company !'), _("There are currently no company without chart of account. The wizard will therefore not be executed."))
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
res = super(account_installer, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
|
||||
cmp_select = []
|
||||
unconfigured_cmp = self.get_unconfigured_cmp(cr, uid, context=context)
|
||||
for field in res['fields']:
|
||||
if field == 'company_id':
|
||||
res['fields'][field]['domain'] = [('id','in',unconfigured_cmp)]
|
||||
|
|
Loading…
Reference in New Issue