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. -->
+
+