[ADD] currency prefix symbol

bzr revid: xmo@openerp.com-20131007150330-sys0320gaui2crtt
This commit is contained in:
Xavier Morel 2013-10-07 17:03:30 +02:00
parent 727b0e27c5
commit a6e4951886
2 changed files with 37 additions and 4 deletions

View File

@ -554,9 +554,23 @@ class CurrencyConverter(osv.AbstractModel):
_inherit = 'ir.qweb.field'
def record_to_html(self, cr, uid, field_name, record, column, options):
return u'<span class="oe_currency_value">{0}</span> {1}'.format(
symbol_pre = symbol_post = space_pre = space_post = u''
currency = record[options['currency']]
if currency.position == 'before':
space_pre = u' '
symbol_pre = currency.symbol
else:
space_post = u' '
symbol_post = currency.symbol
return u'{symbol_pre}{space_pre}' \
u'<span class="oe_currency_value">{0}</span>' \
u'{space_post}{symbol_post}'.format(
record[field_name],
record[options['currency']].symbol)
space_pre=space_pre,
symbol_pre=symbol_pre,
space_post=space_post,
symbol_post=symbol_post,)
def get_field_type(column, options):
""" Gets a t-field's effective type from the field's column and its options

View File

@ -107,8 +107,27 @@ class TestCurrencyExport(TestExport):
'<span data-oe-model="{obj._model._name}" data-oe-id="{obj.id}" '
'data-oe-field="value" data-oe-type="currency" '
'data-oe-translate="0" data-oe-expression="obj.value">'
'<span class="oe_currency_value">0.12</span> '
'{symbol}</span>'.format(
'<span class="oe_currency_value">0.12</span>'
' {symbol}</span>'.format(
obj=obj,
symbol=currency.symbol.encode('utf-8')
),)
def test_currency_pre(self):
currency = self.create(
self.Currency, name="Test", symbol=u"test", position='before')
obj = self.create(self.Model, value=0.12, currency_id=currency.id)
converted = self.convert(obj)
self.assertEqual(
converted,
'<span data-oe-model="{obj._model._name}" data-oe-id="{obj.id}" '
'data-oe-field="value" data-oe-type="currency" '
'data-oe-translate="0" data-oe-expression="obj.value">'
'{symbol} '
'<span class="oe_currency_value">0.12</span>'
'</span>'.format(
obj=obj,
symbol=currency.symbol.encode('utf-8')
),)