From 35b0eda95ac6e660d9b115ba240378c146caea8a Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Thu, 22 Jun 2017 02:49:57 +0200 Subject: [PATCH] Added moneyfield and percentfield --- paramecio/cromosoma/extrafields/moneyfield.py | 26 +++++++++++++++++++ .../cromosoma/extrafields/percentfield.py | 22 ++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 paramecio/cromosoma/extrafields/moneyfield.py create mode 100644 paramecio/cromosoma/extrafields/percentfield.py diff --git a/paramecio/cromosoma/extrafields/moneyfield.py b/paramecio/cromosoma/extrafields/moneyfield.py new file mode 100644 index 0000000..b02b4bf --- /dev/null +++ b/paramecio/cromosoma/extrafields/moneyfield.py @@ -0,0 +1,26 @@ +from paramecio.cromosoma.corefields import FloatField +from decimal import Decimal, getcontext +from locale import format + +getcontext().prec=2 + +class MoneyField(FloatField): + + def __init__(self, name, required=False): + + super().__init__(name, 11, required) + + def check(self, value): + + value=Decimal(value) + + return value + + def show_formatted(self, value): + + return format('%.2f', Decimal(value), grouping=True) + + @staticmethod + def format_money(value): + return format('%.2f', Decimal(value), grouping=True) + diff --git a/paramecio/cromosoma/extrafields/percentfield.py b/paramecio/cromosoma/extrafields/percentfield.py new file mode 100644 index 0000000..1aa3eb2 --- /dev/null +++ b/paramecio/cromosoma/extrafields/percentfield.py @@ -0,0 +1,22 @@ +from paramecio.cromosoma.corefields import IntegerField + +class PercentField(IntegerField): + + def __init__(self, name, required=False): + + super().__init__(name, 2, required) + + def check(self, value): + + try: + value=int(value) + + if value<0: + value=0 + if value>100: + value=100 + + except: + value=0 + + return value