From a6e49518868fa8f205d2b7ad2113a7f9c4d67f89 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 7 Oct 2013 17:03:30 +0200 Subject: [PATCH] [ADD] currency prefix symbol bzr revid: xmo@openerp.com-20131007150330-sys0320gaui2crtt --- openerp/addons/base/ir/ir_qweb.py | 18 +++++++++++++-- .../addons/test_converter/tests/test_html.py | 23 +++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) 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') ),)