From 6b9cf5d51c14cb34dbc31e7608ce2c792e1aba1a Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Wed, 29 Jan 2020 22:24:40 +0100 Subject: [PATCH] Add configuration values for frequency issue8987 review260821002 --- CHANGELOG | 1 + __init__.py | 1 + account.py | 31 +++++++++++++++++++++++++++++++ asset.py | 8 +++++--- view/configuration_form.xml | 2 ++ 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7ba3991bff..5b7c0088d9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Add configuration value for frequency * Use fixed year of 365 days Version 5.4.0 - 2019-11-04 diff --git a/__init__.py b/__init__.py index 231bf11768..fa3c51a2ad 100644 --- a/__init__.py +++ b/__init__.py @@ -25,6 +25,7 @@ def register(): account.Configuration, account.ConfigurationAssetSequence, account.ConfigurationAssetDate, + account.ConfigurationAssetFrequency, account.AccountTypeTemplate, account.AccountType, account.Move, diff --git a/account.py b/account.py index 5fdc4febb3..2aae7c18d8 100644 --- a/account.py +++ b/account.py @@ -29,6 +29,18 @@ asset_bymonth = fields.Selection([ ('12', "December"), ], "Month", sort=False, help="The month to create the depreciation moves.") +asset_frequency = fields.Selection('get_asset_frequencies', + "Asset Depreciation Frequency", + required=True, help="The default depreciation frequency for new assets.") + + +def get_asset_selection(field_name): + @classmethod + def get_selection(cls): + pool = Pool() + Asset = pool.get('account.asset') + return Asset.fields_get([field_name])[field_name]['selection'] + return get_selection class Configuration(metaclass=PoolMeta): @@ -42,6 +54,9 @@ class Configuration(metaclass=PoolMeta): ])) asset_bymonthday = fields.MultiValue(asset_bymonthday) asset_bymonth = fields.MultiValue(asset_bymonth) + asset_frequency = fields.MultiValue(asset_frequency) + + get_asset_frequencies = get_asset_selection('frequency') @classmethod def multivalue_model(cls, field): @@ -63,6 +78,11 @@ class Configuration(metaclass=PoolMeta): def default_asset_bymonth(cls, **pattern): return cls.multivalue_model('asset_bymonth').default_asset_bymonth() + @classmethod + def default_asset_frequency(cls, **pattern): + return cls.multivalue_model( + 'asset_frequency').default_asset_frequency() + class ConfigurationAssetSequence(ModelSQL, CompanyValueMixin): "Account Configuration Asset Sequence" @@ -118,6 +138,17 @@ class ConfigurationAssetDate(ModelSQL, CompanyValueMixin): return "12" +class ConfigurationAssetFrequency(ModelSQL, CompanyValueMixin): + "Account Configuration Asset Frequency" + __name__ = 'account.configuration.asset_frequency' + asset_frequency = asset_frequency + get_asset_frequencies = get_asset_selection('frequency') + + @classmethod + def default_asset_frequency(cls): + return 'monthly' + + def AccountTypeMixin(template=False): class Mixin: diff --git a/asset.py b/asset.py index 44e391ae1c..a591bf7c11 100644 --- a/asset.py +++ b/asset.py @@ -260,9 +260,11 @@ class Asset(Workflow, ModelSQL, ModelView): def default_state(): return 'draft' - @staticmethod - def default_frequency(): - return 'monthly' + @classmethod + def default_frequency(cls, **pattern): + pool = Pool() + Configuration = pool.get('account.configuration') + return Configuration(1).get_multivalue('asset_frequency', **pattern) @staticmethod def default_depreciation_method(): diff --git a/view/configuration_form.xml b/view/configuration_form.xml index 983e2de78b..3a7469bedb 100644 --- a/view/configuration_form.xml +++ b/view/configuration_form.xml @@ -6,6 +6,8 @@ this repository contains the full copyright notices and license terms. -->