changeset 69d28a7108fe in modules/analytic_account:default
details:
https://hg.tryton.org/modules/analytic_account?cmd=changeset;node=69d28a7108fe
description:
Remove mandatory on analytic roots
Having required field managed by user breaks automated workflows.
issue7605
review70531002
diffstat:
CHANGELOG | 1 +
account.py | 54 +-------------------------------------------------
exceptions.py | 4 ---
message.xml | 3 --
view/account_form.xml | 2 -
5 files changed, 3 insertions(+), 61 deletions(-)
diffs (151 lines):
diff -r 3520bc3b4615 -r 69d28a7108fe CHANGELOG
--- a/CHANGELOG Sat Jan 26 01:10:47 2019 +0100
+++ b/CHANGELOG Mon Feb 18 18:39:29 2019 +0100
@@ -1,3 +1,4 @@
+* Remove mandatory on analytic roots
* Remove positive constraint on debit/credit
Version 5.0.0 - 2018-10-01
diff -r 3520bc3b4615 -r 69d28a7108fe account.py
--- a/account.py Sat Jan 26 01:10:47 2019 +0100
+++ b/account.py Mon Feb 18 18:39:29 2019 +0100
@@ -16,7 +16,7 @@
from trytond.transaction import Transaction
from trytond.pool import Pool
-from .exceptions import AccountValidationError, RootValidationError
+from .exceptions import AccountValidationError
__all__ = ['Account', 'AccountDistribution',
'OpenChartAccountStart', 'OpenChartAccount',
@@ -90,11 +90,6 @@
('debit-credit', 'Debit - Credit'),
('credit-debit', 'Credit - Debit'),
], 'Display Balance', required=True)
- mandatory = fields.Boolean('Mandatory', states={
- 'invisible': Eval('type') != 'root',
- },
- depends=['type'],
- help="Make this account mandatory when filling documents")
distributions = fields.One2Many(
'analytic_account.account.distribution', 'parent',
"Distributions",
@@ -137,10 +132,6 @@
def default_display_balance():
return 'credit-debit'
- @staticmethod
- def default_mandatory():
- return False
-
@classmethod
def validate(cls, accounts):
super(Account, cls).validate(accounts)
@@ -393,16 +384,11 @@
depends=['company'])
account = fields.Many2One('analytic_account.account', 'Account',
ondelete='RESTRICT',
- states={
- 'required': Eval('required', False),
- },
domain=[
('root', '=', Eval('root')),
('type', 'in', ['normal', 'distribution']),
],
- depends=['root', 'required', 'company'])
- required = fields.Function(fields.Boolean('Required'),
- 'on_change_with_required')
+ depends=['root', 'company'])
company = fields.Function(fields.Many2One('company.company', 'Company'),
'on_change_with_company', searcher='search_company')
@@ -461,12 +447,6 @@
])
return [(None, '')] + [(m.model, m.name) for m in models]
- @fields.depends('root')
- def on_change_with_required(self, name=None):
- if self.root:
- return self.root.mandatory
- return False
-
def on_change_with_company(self, name=None):
return None
@@ -541,7 +521,6 @@
])
for account in root_accounts:
accounts.append({
- 'required': account.mandatory,
'root': account.id,
})
return accounts
@@ -559,32 +538,3 @@
def get_analytic_accounts_size(cls, records, name):
roots = cls.default_analytic_accounts_size()
return {r.id: roots for r in records}
-
- @classmethod
- def validate(cls, analytics):
- super(AnalyticMixin, cls).validate(analytics)
- cls.check_roots(analytics)
-
- @classmethod
- def check_roots(cls, analytics):
- "Check that all mandatory root entries are defined in entries"
- pool = Pool()
- Account = pool.get('analytic_account.account')
- all_mandatory_roots = {a for a in Account.search([
- ('type', '=', 'root'),
- ('mandatory', '=', True),
- ])}
- for analytic in analytics:
- analytic_roots = {e.root for e in analytic.analytic_accounts}
- companies = {e.company for e in analytic.analytic_accounts}
- mandatory_roots = set()
- for mandatory in all_mandatory_roots:
- if mandatory.company in companies:
- mandatory_roots.add(mandatory)
- mandatory_roots.difference_update(analytic_roots)
- if mandatory_roots:
- raise RootValidationError(
- gettext('analytic_account.msg_missing_root_account',
- name=analytic.rec_name,
- analytics=', '.join(
- (r.rec_name for r in mandatory_roots))))
diff -r 3520bc3b4615 -r 69d28a7108fe exceptions.py
--- a/exceptions.py Sat Jan 26 01:10:47 2019 +0100
+++ b/exceptions.py Mon Feb 18 18:39:29 2019 +0100
@@ -6,7 +6,3 @@
class AccountValidationError(ValidationError):
pass
-
-
-class RootValidationError(ValidationError):
- pass
diff -r 3520bc3b4615 -r 69d28a7108fe message.xml
--- a/message.xml Sat Jan 26 01:10:47 2019 +0100
+++ b/message.xml Mon Feb 18 18:39:29 2019 +0100
@@ -6,9 +6,6 @@
<record model="ir.message" id="msg_invalid_distribution">
<field name="text">To save account "%(account)s" the sum of their
distributions must be 100%%.</field>
</record>
- <record model="ir.message" id="msg_missing_root_account">
- <field name="text">To save "%(name)s" you must set a value for
analytics "%(analytics)s".</field>
- </record>
<record model="ir.message" id="msg_root_origin_unique">
<field name="text">Only one account is allowed by analytic root
and origin.</field>
</record>
diff -r 3520bc3b4615 -r 69d28a7108fe view/account_form.xml
--- a/view/account_form.xml Sat Jan 26 01:10:47 2019 +0100
+++ b/view/account_form.xml Mon Feb 18 18:39:29 2019 +0100
@@ -22,8 +22,6 @@
<field name="company"/>
<label name="currency"/>
<field name="currency"/>
- <label name="mandatory"/>
- <field name="mandatory"/>
<field name="childs" colspan="4"
view_ids="analytic_account.account_view_list2"/>
</page>