Use editable instead of of readonly for account template override
This commit is contained in:
@@ -125,8 +125,8 @@ def TypeMixin(template=False):
|
||||
field = getattr(Mixin, fname)
|
||||
if not isinstance(field, fields.Field):
|
||||
continue
|
||||
field.states['readonly'] = (
|
||||
Bool(Eval('template', -1)) & ~Eval('template_override', False))
|
||||
field.states['ediable'] = (
|
||||
~Eval('template', None) | Eval('template_override', False))
|
||||
return Mixin
|
||||
|
||||
|
||||
@@ -216,8 +216,9 @@ class Type(
|
||||
parent = fields.Many2One(
|
||||
'account.account.type', 'Parent', ondelete='RESTRICT',
|
||||
states={
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': (
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
},
|
||||
domain=[
|
||||
('company', '=', Eval('company', -1)),
|
||||
@@ -629,7 +630,7 @@ def AccountMixin(template=False):
|
||||
or isinstance(field, fields.Function)):
|
||||
continue
|
||||
field.states['editable'] = (
|
||||
Eval('template', None) & ~Eval('template_override', False))
|
||||
~Eval('template', None) | Eval('template_override', False))
|
||||
return Mixin
|
||||
|
||||
|
||||
@@ -827,7 +828,7 @@ class Account(
|
||||
ModelSQL, ModelView):
|
||||
__name__ = 'account.account'
|
||||
_states = {
|
||||
'editable': Eval('template', None) & ~Eval('template_override', False),
|
||||
'editable': ~Eval('template', None) | Eval('template_override', False),
|
||||
}
|
||||
company = fields.Many2One('company.company', 'Company', required=True,
|
||||
ondelete="RESTRICT")
|
||||
@@ -954,7 +955,8 @@ class Account(
|
||||
for date in [cls.start_date, cls.end_date]:
|
||||
date.states = {
|
||||
'editable': (
|
||||
Eval('template', -1) & ~Eval('template_override', False)),
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
}
|
||||
cls._order.insert(0, ('code', 'ASC'))
|
||||
cls._order.insert(1, ('name', 'ASC'))
|
||||
|
||||
+14
-18
@@ -125,8 +125,7 @@ class TaxCode(
|
||||
ContextCompanyMixin, ActivePeriodMixin, tree(), ModelSQL, ModelView):
|
||||
__name__ = 'account.tax.code'
|
||||
_states = {
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': ~Eval('template', None) | Eval('template_override', False),
|
||||
}
|
||||
name = fields.Char('Name', required=True, states=_states)
|
||||
code = fields.Char('Code', states=_states)
|
||||
@@ -166,8 +165,9 @@ class TaxCode(
|
||||
Index(t, (Coalesce(t.code, ''), Index.Similarity())))
|
||||
for date in [cls.start_date, cls.end_date]:
|
||||
date.states = {
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': (
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
}
|
||||
cls._order.insert(0, ('code', 'ASC'))
|
||||
|
||||
@@ -358,8 +358,7 @@ class TaxCodeLineTemplate(ModelSQL, ModelView):
|
||||
class TaxCodeLine(ModelSQL, ModelView):
|
||||
__name__ = 'account.tax.code.line'
|
||||
_states = {
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': ~Eval('template', None) | Eval('template_override', False),
|
||||
}
|
||||
|
||||
code = fields.Many2One('account.tax.code', "Code", required=True)
|
||||
@@ -745,8 +744,7 @@ class Tax(sequence_ordered(), ModelSQL, ModelView, DeactivableMixin):
|
||||
none: tax = none"""
|
||||
__name__ = 'account.tax'
|
||||
_states = {
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': ~Eval('template', None) | Eval('template_override', False),
|
||||
}
|
||||
name = fields.Char('Name', required=True, states=_states)
|
||||
description = fields.Char('Description', required=True, translate=True,
|
||||
@@ -754,7 +752,7 @@ class Tax(sequence_ordered(), ModelSQL, ModelView, DeactivableMixin):
|
||||
group = fields.Many2One('account.tax.group', 'Group',
|
||||
states={
|
||||
'invisible': Bool(Eval('parent')),
|
||||
'readonly': _states['readonly'],
|
||||
'editable': _states['editable'],
|
||||
})
|
||||
start_date = fields.Date("Start Date", states=_states)
|
||||
end_date = fields.Date("End Date", states=_states)
|
||||
@@ -763,14 +761,14 @@ class Tax(sequence_ordered(), ModelSQL, ModelView, DeactivableMixin):
|
||||
states={
|
||||
'required': Eval('type') == 'fixed',
|
||||
'invisible': Eval('type') != 'fixed',
|
||||
'readonly': _states['readonly'],
|
||||
'editable': _states['editable'],
|
||||
}, help='In company\'s currency.')
|
||||
rate = fields.Numeric(
|
||||
"Rate", digits=(None, 10),
|
||||
states={
|
||||
'required': Eval('type') == 'percentage',
|
||||
'invisible': Eval('type') != 'percentage',
|
||||
'readonly': _states['readonly'],
|
||||
'editable': _states['editable'],
|
||||
})
|
||||
type = fields.Selection([
|
||||
('percentage', 'Percentage'),
|
||||
@@ -780,7 +778,7 @@ class Tax(sequence_ordered(), ModelSQL, ModelView, DeactivableMixin):
|
||||
update_unit_price = fields.Boolean('Update Unit Price',
|
||||
states={
|
||||
'invisible': Bool(Eval('parent')),
|
||||
'readonly': _states['readonly'],
|
||||
'editable': _states['editable'],
|
||||
},
|
||||
help=('If checked then the unit price for further tax computation will'
|
||||
' be modified by this tax.'))
|
||||
@@ -802,7 +800,7 @@ class Tax(sequence_ordered(), ModelSQL, ModelView, DeactivableMixin):
|
||||
('closed', '!=', True),
|
||||
],
|
||||
states={
|
||||
'readonly': _states['readonly'],
|
||||
'editable': _states['editable'],
|
||||
'required': Eval('type') != 'none',
|
||||
})
|
||||
credit_note_account = fields.Many2One('account.account',
|
||||
@@ -813,7 +811,7 @@ class Tax(sequence_ordered(), ModelSQL, ModelView, DeactivableMixin):
|
||||
('closed', '!=', True),
|
||||
],
|
||||
states={
|
||||
'readonly': _states['readonly'],
|
||||
'editable': _states['editable'],
|
||||
'required': Eval('type') != 'none',
|
||||
})
|
||||
legal_notice = fields.Text("Legal Notice", translate=True,
|
||||
@@ -1500,8 +1498,7 @@ class TaxRuleTemplate(ModelSQL, ModelView):
|
||||
class TaxRule(ModelSQL, ModelView):
|
||||
__name__ = 'account.tax.rule'
|
||||
_states = {
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': ~Eval('template', None) | Eval('template_override', False),
|
||||
}
|
||||
name = fields.Char('Name', required=True, states=_states)
|
||||
kind = fields.Selection(KINDS, 'Kind', required=True, states=_states)
|
||||
@@ -1695,8 +1692,7 @@ class TaxRuleLineTemplate(sequence_ordered(), ModelSQL, ModelView):
|
||||
class TaxRuleLine(sequence_ordered(), ModelSQL, ModelView, MatchMixin):
|
||||
__name__ = 'account.tax.rule.line'
|
||||
_states = {
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': ~Eval('template', None) | Eval('template_override', False),
|
||||
}
|
||||
rule = fields.Many2One(
|
||||
'account.tax.rule', "Rule",
|
||||
|
||||
@@ -5,7 +5,7 @@ from trytond.model import ModelSQL, fields
|
||||
from trytond.model.exceptions import AccessError
|
||||
from trytond.modules.company.model import CompanyValueMixin
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval, Id, If
|
||||
from trytond.pyson import Eval, Id, If
|
||||
|
||||
asset_bymonthday = fields.Selection([
|
||||
('1', "First"),
|
||||
@@ -146,8 +146,8 @@ def AccountTypeMixin(template=False):
|
||||
field = getattr(Mixin, fname)
|
||||
if not isinstance(field, fields.Field):
|
||||
continue
|
||||
field.states['readonly'] = (
|
||||
Bool(Eval('template', -1)) & ~Eval('template_override', False))
|
||||
field.states['editable'] = (
|
||||
~Eval('template', None) | Eval('template_override', False))
|
||||
return Mixin
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.model import fields
|
||||
from trytond.pool import PoolMeta
|
||||
from trytond.pyson import Bool, Eval, If
|
||||
from trytond.pyson import Eval, If
|
||||
|
||||
|
||||
def AccountTypeMixin(template=False):
|
||||
@@ -24,8 +24,8 @@ def AccountTypeMixin(template=False):
|
||||
field = getattr(Mixin, fname)
|
||||
if not isinstance(field, fields.Field):
|
||||
continue
|
||||
field.states['readonly'] = (
|
||||
Bool(Eval('template', -1)) & ~Eval('template_override', False))
|
||||
field.states['editable'] = (
|
||||
~Eval('template', None) | Eval('template_override', False))
|
||||
return Mixin
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ from trytond.model import ModelSQL, ModelView, fields
|
||||
from trytond.modules.account.exceptions import FiscalYearNotFoundError
|
||||
from trytond.modules.currency.fields import Monetary
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval
|
||||
from trytond.pyson import Eval
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
VATEX_CODES = [
|
||||
@@ -200,14 +200,16 @@ class Tax(metaclass=PoolMeta):
|
||||
|
||||
ec_sales_list_code = fields.Char("EC Sales List Code",
|
||||
states={
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': (
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
})
|
||||
vatex_code = fields.Selection(
|
||||
[(None, "")] + VATEX_CODES, "Tax Exemption Code", sort=False,
|
||||
states={
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': (
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
},
|
||||
help="The reason why the amount is exempted from VAT.")
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from sql.operators import Equal
|
||||
|
||||
from trytond.model import Exclude, fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval
|
||||
from trytond.pyson import Eval
|
||||
|
||||
_ACT_FIELDNAMES = [
|
||||
'DOCTYPE', 'DBKCODE', 'DBKTYPE', 'DOCNUMBER', 'DOCORDER', 'OPCODE',
|
||||
@@ -168,9 +168,9 @@ class Tax(metaclass=PoolMeta):
|
||||
winbooks_code = fields.Char(
|
||||
"WinBooks Code", size=10,
|
||||
states={
|
||||
'readonly': (
|
||||
Bool(Eval('template', -1)
|
||||
& ~Eval('template_override', False))),
|
||||
'editable': (
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
})
|
||||
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ Create invoice::
|
||||
>>> Invoice.write([invoice], {
|
||||
... 'number': str(uuid.uuid4())[:20],
|
||||
... 'invoice_date': today,
|
||||
... }, config._context)
|
||||
... }, {**config._context, '_check_access': False})
|
||||
>>> invoice.click('post')
|
||||
>>> invoice.state
|
||||
'posted'
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.model import fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval
|
||||
from trytond.pyson import Eval
|
||||
|
||||
|
||||
class Tax(metaclass=PoolMeta):
|
||||
@@ -66,8 +66,9 @@ class Tax(metaclass=PoolMeta):
|
||||
('VAT', "Value added tax"),
|
||||
], "UNECE Code",
|
||||
states={
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': (
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
},
|
||||
help="Standard code of "
|
||||
"the United Nations Economic Commission for Europe.")
|
||||
@@ -99,8 +100,9 @@ class Tax(metaclass=PoolMeta):
|
||||
('Z', "Zero rated goods"),
|
||||
], "UNECE Category Code",
|
||||
states={
|
||||
'readonly': (Bool(Eval('template', -1))
|
||||
& ~Eval('template_override', False)),
|
||||
'editable': (
|
||||
~Eval('template', None)
|
||||
| Eval('template_override', False)),
|
||||
},
|
||||
help="Standard code of "
|
||||
"the United Nations Economic Commission for Europe.")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
from trytond.model import fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval, If
|
||||
from trytond.pyson import Eval, If
|
||||
|
||||
|
||||
def AccountTypeMixin(template=False):
|
||||
@@ -25,8 +25,8 @@ def AccountTypeMixin(template=False):
|
||||
field = getattr(Mixin, fname)
|
||||
if not isinstance(field, fields.Field):
|
||||
continue
|
||||
field.states['readonly'] = (
|
||||
Bool(Eval('template', -1)) & ~Eval('template_override', False))
|
||||
field.states['editable'] = (
|
||||
~Eval('template', None) | Eval('template_override', False))
|
||||
return Mixin
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from trytond.model import ModelSQL, fields
|
||||
from trytond.modules.company.model import CompanyValueMixin
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval, If
|
||||
from trytond.pyson import Eval, If
|
||||
|
||||
|
||||
class Configuration(metaclass=PoolMeta):
|
||||
@@ -69,8 +69,8 @@ def AccountTypeMixin(template=False):
|
||||
field = getattr(Mixin, fname)
|
||||
if not isinstance(field, fields.Field):
|
||||
continue
|
||||
field.states['readonly'] = (
|
||||
Bool(Eval('template', -1)) & ~Eval('template_override', False))
|
||||
field.states['editable'] = (
|
||||
~Eval('template', None) | Eval('template_override', False))
|
||||
return Mixin
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user