diff --git a/book.py b/book.py index c81afb7..f438d5d 100644 --- a/book.py +++ b/book.py @@ -59,6 +59,9 @@ class Book(SymbolMixin, metaclass=PoolMeta): }, depends=DEPENDS2+['feature', 'lines', 'asset_uomcat']) symbol = fields.Function(fields.Char(string='Symbol', readonly=True), 'on_change_with_symbol') + asset_symbol = fields.Function(fields.Many2One(string='Symbol', + readonly=True, model_name='cashbook.book'), + 'on_change_with_asset_symbol') quantity = fields.Function(fields.Numeric(string='Quantity', help='Quantity of assets until to date', readonly=True, digits=(16, Eval('quantity_digits', 4)), @@ -238,6 +241,13 @@ class Book(SymbolMixin, metaclass=PoolMeta): result[name][record[0]] = values[name] return result + @fields.depends('id') + def on_change_with_asset_symbol(self, name=None): + """ get current cashbook to enable usage of 'symbol' + in the form + """ + return self.id + @fields.depends('quantity_uom', 'currency') def on_change_with_symbol(self, name=None): """ get symbol for asset diff --git a/line.py b/line.py index 88b5964..b39b495 100644 --- a/line.py +++ b/line.py @@ -34,7 +34,9 @@ class Line(metaclass=PoolMeta): digits=(16, If( Eval('currency_digits', 2) > Eval('quantity_digits', 2), Eval('currency_digits', 2), Eval('quantity_digits', 2))), - depends=['currency_digits', 'quantity_digits']), + states={ + 'invisible': Eval('feature', '') != 'asset', + }, depends=['currency_digits', 'quantity_digits', 'feature']), 'on_change_with_asset_rate') @fields.depends('quantity', 'amount', 'currency_digits', 'quantity_digits') @@ -56,7 +58,8 @@ class Line(metaclass=PoolMeta): """ get quantity-unit of asset """ if self.cashbook: - return self.cashbook.quantity_uom.id + if self.cashbook.quantity_uom: + return self.cashbook.quantity_uom.id @fields.depends('cashbook', '_parent_cashbook.quantity_digits') def on_change_with_quantity_digits(self, name=None): diff --git a/locale/de.po b/locale/de.po index 1ba5d0e..11e068f 100644 --- a/locale/de.po +++ b/locale/de.po @@ -50,6 +50,10 @@ msgctxt "field:cashbook.book,symbol:" msgid "Symbol" msgstr "Symbol" +msgctxt "field:cashbook.book,asset_symbol:" +msgid "Symbol" +msgstr "Symbol" + msgctxt "field:cashbook.book,quantity:" msgid "Quantity" msgstr "Anzahl" diff --git a/locale/en.po b/locale/en.po index c54ba44..870dabd 100644 --- a/locale/en.po +++ b/locale/en.po @@ -42,6 +42,10 @@ msgctxt "field:cashbook.book,symbol:" msgid "Symbol" msgstr "Symbol" +msgctxt "field:cashbook.book,asset_symbol:" +msgid "Symbol" +msgstr "Symbol" + msgctxt "field:cashbook.book,quantity:" msgid "Quantity" msgstr "Quantity" diff --git a/view/book_form.xml b/view/book_form.xml index 22f21ed..8d98082 100644 --- a/view/book_form.xml +++ b/view/book_form.xml @@ -26,8 +26,7 @@ full copyright notices and license terms. -->