Avoid analytic configuration for View accounts

Hide analytic configuration in View account form.
Don't show (and don't allow to select) view accounts in analytic root account
configuration.
This commit is contained in:
Guillem Barba 2014-05-08 14:21:32 +02:00
parent d5fc350a54
commit dba2eeaa8b
2 changed files with 18 additions and 5 deletions

View file

@ -20,25 +20,34 @@ class Account:
('type', '=', 'root'),
('id', 'not in', Eval('analytic_forbidden')),
('id', 'not in', Eval('analytic_optional')),
], depends=['analytic_forbidden', 'analytic_optional'])
], states={
'invisible': Eval('kind') == 'view',
}, depends=['analytic_forbidden', 'analytic_optional', 'kind'])
analytic_forbidden = fields.Many2Many(
'analytic_account.account-forbidden-account.account', 'account',
'analytic_account', 'Analytic Forbidden', domain=[
('type', '=', 'root'),
('id', 'not in', Eval('analytic_required')),
('id', 'not in', Eval('analytic_optional')),
], depends=['analytic_required', 'analytic_optional'])
], states={
'invisible': Eval('kind') == 'view',
}, depends=['analytic_required', 'analytic_optional', 'kind'])
analytic_optional = fields.Many2Many(
'analytic_account.account-optional-account.account', 'account',
'analytic_account', 'Analytic Optional', domain=[
('type', '=', 'root'),
('id', 'not in', Eval('analytic_required')),
('id', 'not in', Eval('analytic_forbidden')),
], depends=['analytic_required', 'analytic_forbidden'])
], states={
'invisible': Eval('kind') == 'view',
}, depends=['analytic_required', 'analytic_forbidden', 'kind'])
analytic_pending_accounts = fields.Function(
fields.Many2Many('analytic_account.account', None, None,
'Pending Accounts', on_change_with=['analytic_required',
'analytic_forbidden', 'analytic_optional']),
'Pending Accounts', states={
'invisible': Eval('kind') == 'view',
}, depends=['kind'],
on_change_with=['analytic_required', 'analytic_forbidden',
'analytic_optional']),
'on_change_with_analytic_pending_accounts')
@classmethod

View file

@ -23,6 +23,7 @@ class AnalyticAccount:
analytic_required = fields.Many2Many(
'analytic_account.account-required-account.account',
'analytic_account', 'account', 'Analytic Required', domain=[
('kind', '!=', 'view'),
('id', 'not in', Eval('analytic_forbidden')),
('id', 'not in', Eval('analytic_optional')),
], states={
@ -31,6 +32,7 @@ class AnalyticAccount:
analytic_forbidden = fields.Many2Many(
'analytic_account.account-forbidden-account.account',
'analytic_account', 'account', 'Analytic Forbidden', domain=[
('kind', '!=', 'view'),
('id', 'not in', Eval('analytic_required')),
('id', 'not in', Eval('analytic_optional')),
], states={
@ -39,6 +41,7 @@ class AnalyticAccount:
analytic_optional = fields.Many2Many(
'analytic_account.account-optional-account.account',
'analytic_account', 'account', 'Analytic Optional', domain=[
('kind', '!=', 'view'),
('id', 'not in', Eval('analytic_required')),
('id', 'not in', Eval('analytic_forbidden')),
], states={
@ -77,6 +80,7 @@ class AnalyticAccount:
current_accounts += map(int, self.analytic_forbidden)
current_accounts += map(int, self.analytic_optional)
pending_accounts = Account.search([
('kind', '!=', 'view'),
('id', 'not in', current_accounts),
])
return map(int, pending_accounts)