From 9061039ec2ebaa88afa5b2b3c88a228d70c3e2ba Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Mon, 5 Dec 2022 21:02:17 +0100 Subject: [PATCH] =?UTF-8?q?asset:=20bereichsgrenzen=20f=C3=BCr=20currency?= =?UTF-8?q?=5Fdigits,=20farbe=20rot=20f=C3=BCr=20tagesnegativ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asset.py | 7 +++++-- tests/test_asset.py | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/asset.py b/asset.py index 56a21d2..b1a80fc 100644 --- a/asset.py +++ b/asset.py @@ -60,7 +60,10 @@ class Asset(SymbolMixin, ModelSQL, ModelView): currency = fields.Many2One(string='Currency', select=True, required=True, model_name='currency.currency', ondelete='RESTRICT') - currency_digits = fields.Integer(string='Digits', required=True) + currency_digits = fields.Integer(string='Digits', required=True, + domain=[ + ('currency_digits', '>=', 0), + ('currency_digits', '<=', 8)]) wkn = fields.Function(fields.Char(string='NSIN', readonly=True, help='National Securities Identifying Number'), @@ -155,7 +158,7 @@ class Asset(SymbolMixin, ModelSQL, ModelView): return super().view_attributes() + [ ('/tree', 'visual', If(Eval('date', Date()) < Date(delta_days=-5), 'muted', - If(Eval('change_day1', 0) < 0, 'warning', + If(Eval('change_day1', 0) < 0, 'danger', If(Eval('change_day1', 0) > 0, 'success', '') )) ), diff --git a/tests/test_asset.py b/tests/test_asset.py index 8fe64c7..6af868b 100644 --- a/tests/test_asset.py +++ b/tests/test_asset.py @@ -7,6 +7,7 @@ from trytond.tests.test_tryton import ModuleTestCase, with_transaction from trytond.pool import Pool from trytond.modules.company.tests import create_company from trytond.transaction import Transaction +from trytond.exceptions import UserError from decimal import Decimal from datetime import time, date, datetime @@ -75,6 +76,8 @@ class AssetTestCase(ModuleTestCase): def test_asset_create(self): """ create asset """ + Asset = Pool().get('investment.asset') + company = self.prep_asset_company() product = self.prep_asset_product( name='Product 1', @@ -85,6 +88,19 @@ class AssetTestCase(ModuleTestCase): product = product) self.assertEqual(asset.symbol, 'usd/u') + # check ranges + Asset.write(*[ + [asset], + { + 'currency_digits': 1, + }]) + self.assertRaisesRegex(UserError, + 'ss', + Asset.write, + *[[asset], { + 'currency_digits': -1, + }]) + @with_transaction() def test_asset_rec_name(self): """ create asset