mirror of
https://github.com/ae-utbm/sith.git
synced 2025-03-28 16:17:11 +00:00
31 lines
792 B
Python
31 lines
792 B
Python
from decimal import Decimal
|
|
|
|
from django.conf import settings
|
|
from django.db import models
|
|
|
|
|
|
class CurrencyField(models.DecimalField):
|
|
"""Custom database field used for currency."""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
kwargs["max_digits"] = 12
|
|
kwargs["decimal_places"] = 2
|
|
super().__init__(*args, **kwargs)
|
|
|
|
def to_python(self, value):
|
|
if value is None:
|
|
return None
|
|
return super().to_python(value).quantize(Decimal("0.01"))
|
|
|
|
|
|
if settings.TESTING:
|
|
from model_bakery import baker
|
|
|
|
baker.generators.add(
|
|
CurrencyField,
|
|
lambda: baker.random_gen.gen_decimal(max_digits=8, decimal_places=2),
|
|
)
|
|
else: # pragma: no cover
|
|
# baker is only used in tests, so we don't need coverage for this part
|
|
pass
|