diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py
index 4c9c20e348d..cb5e741b409 100644
--- a/openerp/addons/base/ir/ir_qweb.py
+++ b/openerp/addons/base/ir/ir_qweb.py
@@ -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'{0} {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'{0}' \
+ 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
diff --git a/openerp/tests/addons/test_converter/tests/test_html.py b/openerp/tests/addons/test_converter/tests/test_html.py
index 641aed5529a..f36333487f7 100644
--- a/openerp/tests/addons/test_converter/tests/test_html.py
+++ b/openerp/tests/addons/test_converter/tests/test_html.py
@@ -107,8 +107,27 @@ class TestCurrencyExport(TestExport):
''
- '0.12 '
- '{symbol}'.format(
+ '0.12'
+ ' {symbol}'.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,
+ ''
+ '{symbol} '
+ '0.12'
+ ''.format(
obj=obj,
symbol=currency.symbol.encode('utf-8')
),)