changeset 789cd5edfde4 in modules/sale_shipment_cost:default
details:
https://hg.tryton.org/modules/sale_shipment_cost?cmd=changeset&node=789cd5edfde4
description:
Replace invisible state by readonly for field edited with checkbox
issue10431
review363351002
diffstat:
stock.py | 34 +++++++++++-----------------------
view/shipment_out_form.xml | 11 +++++------
2 files changed, 16 insertions(+), 29 deletions(-)
diffs (85 lines):
diff -r 7579de14215c -r 789cd5edfde4 stock.py
--- a/stock.py Sun Apr 10 19:11:39 2022 +0200
+++ b/stock.py Tue Apr 12 20:28:14 2022 +0200
@@ -16,35 +16,30 @@
cost_sale_currency_used = fields.Function(fields.Many2One(
'currency.currency', "Cost Sale Currency",
states={
- 'invisible': (
- Eval('cost_edit', False)
- | (Eval('cost_method') != 'shipment')),
+ 'invisible': Eval('cost_method') != 'shipment',
+ 'readonly': (Eval('state').in_(['done', 'cancelled'])
+ | ~Eval('cost_edit', False)),
}),
- 'on_change_with_cost_sale_currency_used')
+ 'on_change_with_cost_sale_currency_used', setter='set_cost')
cost_sale_currency = fields.Many2One(
'currency.currency', "Cost Sale Currency",
states={
- 'invisible': (
- ~Eval('cost_edit', False)
- | (Eval('cost_method') != 'shipment')),
+ 'invisible': Eval('cost_method') != 'shipment',
'required': Bool(Eval('cost_sale')),
'readonly': Eval('state').in_(['done', 'cancelled']),
})
cost_sale_used = fields.Function(fields.Numeric(
"Cost Sale", digits=price_digits,
states={
- 'invisible': (
- Eval('cost_edit', False)
- | (Eval('cost_method') != 'shipment')),
+ 'invisible': Eval('cost_method') != 'shipment',
+ 'readonly': (Eval('state').in_(['done', 'cancelled'])
+ | ~Eval('cost_edit', False)),
}),
- 'on_change_with_cost_sale_used')
+ 'on_change_with_cost_sale_used', setter='set_cost')
cost_sale = fields.Numeric(
- "Cost Sale", digits=price_digits,
+ "Cost Sale", digits=price_digits, readonly=True,
states={
- 'invisible': (
- ~Eval('cost_edit', False)
- | (Eval('cost_method') != 'shipment')),
- 'readonly': Eval('state').in_(['done', 'cancelled']),
+ 'invisible': Eval('cost_method') != 'shipment',
})
cost_invoice_line = fields.Many2One('account.invoice.line',
@@ -107,13 +102,6 @@
elif self.cost_sale_currency:
return self.cost_sale_currency.id
- @fields.depends('cost_edit', 'cost_sale_used', 'cost_sale_currency_used')
- def on_change_cost_edit(self):
- super().on_change_cost_edit()
- if self.cost_edit:
- self.cost_sale = self.cost_sale_used
- self.cost_sale_currency = self.cost_sale_currency_used
-
@classmethod
def get_cost_methods(cls):
pool = Pool()
diff -r 7579de14215c -r 789cd5edfde4 view/shipment_out_form.xml
--- a/view/shipment_out_form.xml Sun Apr 10 19:11:39 2022 +0200
+++ b/view/shipment_out_form.xml Tue Apr 12 20:28:14 2022 +0200
@@ -2,12 +2,11 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
- <xpath expr="//field[@name='cost_used']" position="after">
- <label name="cost_sale"/>
+ <xpath expr="//group[@id='cost_used']" position="after">
<label name="cost_sale_used"/>
- <field name="cost_sale"/>
- <field name="cost_sale_used"/>
- <field name="cost_sale_currency"/>
- <field name="cost_sale_currency_used"/>
+ <group id="cost_sale_used" col="-1" colspan="3">
+ <field name="cost_sale_used" xexpand="0"/>
+ <field name="cost_sale_currency_used" xexpand="0" xalign="0"/>
+ </group>
</xpath>
</data>