Add formatting fields

This commit is contained in:
Cédric Krier committed 2008-08-27 17:35:00 +02:00
1 parent 44e1c21af4
commit fca3ef45a1
2 files changed
+142 -23

No files matched your search

+64
View File
@@ -20,11 +20,28 @@ class Currency(OSV):
digits = fields.Integer('Diplay Digits')
active = fields.Boolean('Active')
# monetary formatting
mon_grouping = fields.Char('mon_grouping', required=True)
mon_decimal_point = fields.Char('mon_decimal_point', required=True)
mon_thousands_sep = fields.Char('mon_thousands_sep')
p_sign_posn = fields.Integer('p_sign_posn')
n_sign_posn = fields.Integer('n_sign_posn')
negative_sign = fields.Char('negative_sign')
positive_sign = fields.Char('positive_sign')
p_cs_precedes = fields.Boolean('p_cs_precedes')
n_cs_precedes = fields.Boolean('n_cs_precedes')
p_sep_by_space = fields.Boolean('p_sep_by_space')
n_sep_by_space = fields.Boolean('n_sep_by_space')
def __init__(self):
super(Currency, self).__init__()
self._order.insert(0, ('code', 'ASC'))
self._constraints += [
('check_mon_grouping', 'invalid_mon_grouping'),
]
self._error_messages.update({
'no_rate': 'No rate found for the currency: %s at the date: %s',
'invalid_grouping': 'Invalid Grouping!',
})
def default_active(self, cursor, user, context=None):
@@ -36,6 +53,53 @@ class Currency(OSV):
def default_digits(self, cursor, user, context=None):
return 2
def default_mon_grouping(self, cursor, user, context=None):
return '[]'
def default_mon_thousands_sep(self, cursor, user, context=None):
return ','
def default_mon_decimal_point(self, cursor, user, context=None):
return '.'
def default_p_sign_posn(self, cursor, user, context=None):
return 1
def default_n_sign_posn(self, cursor, user, context=None):
return 1
def default_negative_sign(self, cursor, user, context=None):
return '-'
def default_positive_sign(self, cursor, user, context=None):
return ''
def default_p_cs_precedes(self, cursor, user, context=None):
return True
def default_n_cs_precedes(self, cursor, user, context=None):
return True
def default_p_sep_by_space(self, cursor, user, context=None):
return False
def default_n_sep_by_space(self, cursor, user, context=None):
return False
def check_mon_grouping(self, cursor, user, ids):
'''
Check if mon_grouping is list of numbers
'''
for currency in self.browse(cursor, user, ids):
try:
grouping = eval(currency.mon_grouping)
for i in grouping:
if not isinstance(i, int):
return False
except:
return False
return True
def name_search(self, cursor, user, name, args=None, operator='ilike',
context=None, limit=None):
if args is None:
+78 -23
View File
@@ -27,31 +27,64 @@
<field name="code"/>
<label name="rounding"/>
<field name="rounding"/>
<label name="digits"/>
<field name="digits"/>
<newline/>
<label name="rate"/>
<field name="rate"/>
<field name="rates" colspan="6" mode="tree,form,graph">
<tree string="Rates">
<field name="date"/>
<field name="rate"/>
</tree>
<form string="Rate">
<label name="date"/>
<field name="date"/>
<notebook colspan="6">
<page string="Rates">
<label name="rate"/>
<field name="rate"/>
</form>
<graph string="Rates" type="line">
<x>
<field name="date"/>
</x>
<y>
<field name="rate" fill="1" empty="0"/>
</y>
</graph>
</field>
<field name="rates" colspan="4" mode="tree,form,graph">
<tree string="Rates">
<field name="date"/>
<field name="rate"/>
</tree>
<form string="Rate">
<label name="date"/>
<field name="date"/>
<label name="rate"/>
<field name="rate"/>
</form>
<graph string="Rates" type="line">
<x>
<field name="date"/>
</x>
<y>
<field name="rate" fill="1" empty="0"/>
</y>
</graph>
</field>
</page>
<page string="Formatting" col="6">
<label name="digits"/>
<field name="digits"/>
<newline/>
<label name="mon_grouping"/>
<field name="mon_grouping"/>
<label name="mon_thousands_sep"/>
<field name="mon_thousands_sep"/>
<label name="mon_decimal_point"/>
<field name="mon_decimal_point"/>
<newline/>
<label name="negative_sign"/>
<field name="negative_sign"/>
<label name="positive_sign"/>
<field name="positive_sign"/>
<newline/>
<label name="p_sign_posn"/>
<field name="p_sign_posn"/>
<label name="n_sign_posn"/>
<field name="n_sign_posn"/>
<newline/>
<label name="p_cs_precedes"/>
<field name="p_cs_precedes"/>
<label name="n_cs_precedes"/>
<field name="n_cs_precedes"/>
<newline/>
<label name="p_sep_by_space"/>
<field name="p_sep_by_space"/>
<label name="n_sep_by_space"/>
<field name="n_sep_by_space"/>
<newline/>
</page>
</notebook>
</form>
]]>
</field>
@@ -279,6 +312,17 @@
<field name="symbol">€</field>
<field name="rounding" eval="0.01"/>
<field name="digits" eval="2"/>
<field name="p_cs_precedes" eval="False"/>
<field name="n_cs_precedes" eval="False"/>
<field name="p_sep_by_space" eval="True"/>
<field name="n_sep_by_space" eval="True"/>
<field name="mon_grouping">[3, 3, 0]</field>
<field name="mon_decimal_point">,</field>
<field name="mon_thousands_sep"> </field>
<field name="p_sign_posn" eval="1"/>
<field name="n_sign_posn" eval="1"/>
<field name="negative_sign">-</field>
<field name="positive_sign"></field>
</record>
<record model="currency.currency" id="fjd">
<field name="name">Fiji Dollar</field>
@@ -583,6 +627,17 @@
<field name="symbol">$</field>
<field name="rounding" eval="0.01"/>
<field name="digits" eval="2"/>
<field name="p_cs_precedes" eval="True"/>
<field name="n_cs_precedes" eval="True"/>
<field name="p_sep_by_space" eval="False"/>
<field name="n_sep_by_space" eval="False"/>
<field name="mon_grouping">[]</field>
<field name="mon_decimal_point">.</field>
<field name="mon_thousands_sep">,</field>
<field name="p_sign_posn" eval="1"/>
<field name="n_sign_posn" eval="1"/>
<field name="negative_sign">-</field>
<field name="positive_sign"></field>
</record>
<record model="currency.currency" id="uzs">
<field name="name">Uzbekistan Sum</field>