Files
tryton/ir.py
T
Cédric Krier 27cd4b6eb0 Check price_decimal configuration
The price_decimal stored in ir.configuration is checked against the current
configuration value. We do not allow to start serving a database for which the
values are different as it may be due to a misconfiguration which can lead to
data corruption.

issue9324
review317381002
2020-05-28 18:22:45 +02:00

25 lines
898 B
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.config import config
from trytond.model import fields
from trytond.pool import PoolMeta
price_decimal = config.getint('product', 'price_decimal', default=4)
class Configuration(metaclass=PoolMeta):
__name__ = 'ir.configuration'
product_price_decimal = fields.Integer("Product Price Decimal")
@classmethod
def default_product_price_decimal(cls):
return price_decimal
def check(self):
super().check()
if self.product_price_decimal != price_decimal:
raise ValueError(
"The price_decimal %s in [product] configuration section "
"is different from the value %s in 'ir.configuration'." % (
self.product_price_decimal, price_decimal))