Added moneyfield and percentfield
This commit is contained in:
parent
52d5e3e133
commit
35b0eda95a
2 changed files with 48 additions and 0 deletions
26
paramecio/cromosoma/extrafields/moneyfield.py
Normal file
26
paramecio/cromosoma/extrafields/moneyfield.py
Normal file
|
|
@ -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)
|
||||||
|
|
||||||
22
paramecio/cromosoma/extrafields/percentfield.py
Normal file
22
paramecio/cromosoma/extrafields/percentfield.py
Normal file
|
|
@ -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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue