From 71aa1de06faf1bf0058929ed37b5bf8bc5f5048b Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Thu, 22 Dec 2022 16:01:10 +0100 Subject: [PATCH] =?UTF-8?q?line:=20Einheit=20f=C3=BCr=20Anzahl,=20book:=20?= =?UTF-8?q?symbol=20f=C3=BCr=20Asset=20+=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book.py | 15 +++++++++++++-- line.py | 10 +++++----- locale/de.po | 4 ++++ locale/en.po | 4 ++++ tests/test_book.py | 3 ++- view/line_form.xml | 7 +------ 6 files changed, 29 insertions(+), 14 deletions(-) diff --git a/book.py b/book.py index 98371c7..3a9b64a 100644 --- a/book.py +++ b/book.py @@ -3,14 +3,14 @@ # The COPYRIGHT file at the top level of this repository contains the # full copyright notices and license terms. -from trytond.model import fields +from trytond.model import fields, SymbolMixin from trytond.exceptions import UserError from trytond.pool import PoolMeta from trytond.pyson import Eval, Or, Len from trytond.modules.cashbook.book import STATES2, DEPENDS2 -class Book(metaclass=PoolMeta): +class Book(SymbolMixin, metaclass=PoolMeta): __name__ = 'cashbook.book' asset = fields.Many2One(string='Asset', @@ -53,6 +53,8 @@ class Book(metaclass=PoolMeta): Len(Eval('lines')) > 0, ), }, depends=DEPENDS2+['feature', 'lines', 'asset_uomcat']) + symbol = fields.Function(fields.Char(string='Symbol', readonly=True), + 'on_change_with_symbol') @fields.depends('asset', 'quantity_uom') def on_change_asset(self): @@ -67,6 +69,15 @@ class Book(metaclass=PoolMeta): """ return 4 + @fields.depends('quantity_uom', 'currency') + def on_change_with_symbol(self, name=None): + """ get symbol for asset + """ + return '%(currency)s/%(unit)s' % { + 'currency': getattr(self.currency, 'symbol', '-'), + 'unit': getattr(self.quantity_uom, 'symbol', '-'), + } + @fields.depends('asset', '_parent_asset.uom') def on_change_with_asset_uomcat(self, name=None): """ get uom-category of asset diff --git a/line.py b/line.py index 9fbdab6..88b5964 100644 --- a/line.py +++ b/line.py @@ -28,14 +28,14 @@ class Line(metaclass=PoolMeta): 'on_change_with_quantity_digits') quantity_uom = fields.Function(fields.Many2One(string='Symbol', readonly=True, model_name='product.uom'), - 'on_change_with_quantity_symbol') + 'on_change_with_quantity_uom') asset_rate = fields.Function(fields.Numeric(string='Rate', readonly=True, digits=(16, If( Eval('currency_digits', 2) > Eval('quantity_digits', 2), - Eval('currency_digits', 2), Eval('quantity_digits', 2)))), + Eval('currency_digits', 2), Eval('quantity_digits', 2))), + depends=['currency_digits', 'quantity_digits']), 'on_change_with_asset_rate') - #asset_ratesymbol = fields. @fields.depends('quantity', 'amount', 'currency_digits', 'quantity_digits') def on_change_with_asset_rate(self, name=None): @@ -52,8 +52,8 @@ class Line(metaclass=PoolMeta): ).quantize(Decimal(str(1/10**digit))) @fields.depends('cashbook', '_parent_cashbook.quantity_uom') - def on_change_with_quantity_symbol(self, name=None): - """ get quantity-symbol of asset + def on_change_with_quantity_uom(self, name=None): + """ get quantity-unit of asset """ if self.cashbook: return self.cashbook.quantity_uom.id diff --git a/locale/de.po b/locale/de.po index 2175463..ada411c 100644 --- a/locale/de.po +++ b/locale/de.po @@ -38,6 +38,10 @@ msgctxt "help:cashbook.book,quantity_uom:" msgid "UOM" msgstr "Einheit" +msgctxt "field:cashbook.book,symbol:" +msgid "Symbol" +msgstr "Symbol" + ################# # cashbook.line # diff --git a/locale/en.po b/locale/en.po index ff8880b..9501c48 100644 --- a/locale/en.po +++ b/locale/en.po @@ -30,6 +30,10 @@ msgctxt "help:cashbook.book,quantity_uom:" msgid "UOM" msgstr "UOM" +msgctxt "field:cashbook.book,symbol:" +msgid "Symbol" +msgstr "Symbol" + msgctxt "field:cashbook.line,quantity_digits:" msgid "Digits" msgstr "Digits" diff --git a/tests/test_book.py b/tests/test_book.py index 660de27..c8899a7 100644 --- a/tests/test_book.py +++ b/tests/test_book.py @@ -104,7 +104,8 @@ class CbInvTestCase(CashbookTestCase, InvestmentTestCase): self.assertEqual(book.lines[0].amount, Decimal('2.5')) self.assertEqual(book.lines[0].quantity, Decimal('1.453')) self.assertEqual(book.lines[0].quantity_digits, 3) - self.assertEqual(book.lines[0].quantity_symbol, 'u') + self.assertEqual(book.lines[0].quantity_uom.symbol, 'u') + self.assertEqual(book.symbol, 'usd/u') @with_transaction() def test_assetbook_book_uom(self): diff --git a/view/line_form.xml b/view/line_form.xml index 97e9d0b..a135d0b 100644 --- a/view/line_form.xml +++ b/view/line_form.xml @@ -8,12 +8,7 @@ full copyright notices and license terms. -->