details: https://code.tryton.org/tryton/commit/08ef103638c1
branch: 7.0
user: Cédric Krier <[email protected]>
date: Thu Oct 01 09:54:29 2026 +0200
description:
Show price and currency fields on stock move when they are not required
but still filled
This is to let the user clear the invalid fields from past moves.
Closes #14919
(grafted from d5ace112f8a9315a6740ef75c2bda4cc8b94b90e)
diffstat:
modules/stock/move.py | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diffs (38 lines):
diff -r 61a5c9347e3e -r 08ef103638c1 modules/stock/move.py
--- a/modules/stock/move.py Fri Oct 02 01:13:04 2026 +0200
+++ b/modules/stock/move.py Thu Oct 01 09:54:29 2026 +0200
@@ -276,8 +276,10 @@
help="The company the stock move is associated with.")
unit_price = fields.Numeric('Unit Price', digits=price_digits,
states={
- 'invisible': ~Eval('unit_price_required'),
- 'required': Bool(Eval('unit_price_required')),
+ 'invisible': (
+ ~Eval('unit_price_required', False)
+ & (Eval('unit_price', None) == None)), # noqa: E711
+ 'required': Eval('unit_price_required', False),
'readonly': Eval('state') != 'draft',
})
unit_price_company = fields.Function(
@@ -295,7 +297,7 @@
cost_price = fields.Numeric(
"Cost Price", digits=price_digits, readonly=True,
states={
- 'invisible': ~Eval('cost_price_required'),
+ 'invisible': ~Eval('cost_price_required', False),
'required': (
(Eval('state') == 'done')
& Eval('cost_price_required', False)),
@@ -309,8 +311,10 @@
"when different from the cost price of the move.")
currency = fields.Many2One('currency.currency', 'Currency',
states={
- 'invisible': ~Eval('unit_price_required'),
- 'required': Bool(Eval('unit_price_required')),
+ 'invisible': (
+ ~Eval('unit_price_required')
+ & (Eval('currency', None) == None)), # noqa: E711
+ 'required': Eval('unit_price_required', False),
'readonly': Eval('state') != 'draft',
},
help="The currency in which the unit price is specified.")