Add formatting fields
This commit is contained in:
1 parent
44e1c21af4
commit
fca3ef45a1
2 files changed
+142
-23
No files matched your search
+64
@@ -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
@@ -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>
|
||||
|
||||
Reference in new issue
Block a user