[ADD] formatting of date and datetime t-field
bzr revid: xmo@openerp.com-20131021152639-2o2j2knhuppdlbzm
This commit is contained in:
@@ -13,6 +13,7 @@ import math
|
||||
import werkzeug.utils
|
||||
|
||||
from openerp.osv import osv, orm, fields
|
||||
import openerp.tools
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -593,6 +594,39 @@ class FloatConverter(osv.AbstractModel):
|
||||
return werkzeug.utils.escape(
|
||||
lang.format(fmt.format(precision=precision), value, grouping=True))
|
||||
|
||||
class DateConverter(osv.AbstractModel):
|
||||
_name = 'ir.qweb.field.date'
|
||||
_inherit = 'ir.qweb.field'
|
||||
|
||||
def value_to_html(self, cr, uid, value, column, options=None, context=None):
|
||||
lang = self.user_lang(cr, uid, context=context)
|
||||
|
||||
parse_format = openerp.tools.DEFAULT_SERVER_DATE_FORMAT
|
||||
out_format = lang.date_format.encode('utf-8')
|
||||
|
||||
if isinstance(value, basestring):
|
||||
value = datetime.datetime.strptime(value, parse_format)
|
||||
|
||||
return value.strftime(out_format)
|
||||
|
||||
class DateTimeConverter(osv.AbstractModel):
|
||||
_name = 'ir.qweb.field.datetime'
|
||||
_inherit = 'ir.qweb.field'
|
||||
|
||||
def value_to_html(self, cr, uid, value, column, options=None, context=None):
|
||||
lang = self.user_lang(cr, uid, context=context)
|
||||
|
||||
parse_format = openerp.tools.DEFAULT_SERVER_DATETIME_FORMAT
|
||||
out_format = (u"%s %s" % (lang.date_format, lang.time_format)).encode('utf-8')
|
||||
|
||||
if isinstance(value, basestring):
|
||||
value = datetime.datetime.strptime(value, parse_format)
|
||||
|
||||
value = column.context_timestamp(
|
||||
cr, uid, timestamp=value, context=context)
|
||||
|
||||
return value.strftime(out_format)
|
||||
|
||||
class TextConverter(osv.AbstractModel):
|
||||
_name = 'ir.qweb.field.text'
|
||||
_inherit = 'ir.qweb.field'
|
||||
|
||||
@@ -114,6 +114,8 @@
|
||||
access_ir_qweb,access_ir_qweb,model_ir_qweb,,0,0,0,0
|
||||
access_ir_qweb_field,access_ir_qweb_field,model_ir_qweb_field,,0,0,0,0
|
||||
access_ir_qweb_field_float,access_ir_qweb_field_float,model_ir_qweb_field_float,,0,0,0,0
|
||||
access_ir_qweb_field_date,access_ir_qweb_field_date,model_ir_qweb_field_date,,0,0,0,0
|
||||
access_ir_qweb_field_datetime,access_ir_qweb_field_datetime,model_ir_qweb_field_datetime,,0,0,0,0
|
||||
access_ir_qweb_field_text,access_ir_qweb_field_text,model_ir_qweb_field_text,,0,0,0,0
|
||||
access_ir_qweb_field_selection,access_ir_qweb_field_selection,model_ir_qweb_field_selection,,0,0,0,0
|
||||
access_ir_qweb_field_many2one,access_ir_qweb_field_many2one,model_ir_qweb_field_many2one,,0,0,0,0
|
||||
|
||||
|
@@ -263,5 +263,30 @@ class TestHTMLExport(TestBasicExport):
|
||||
value = converter(input)
|
||||
self.assertEqual(value, input)
|
||||
|
||||
class TestDatetimeExport(TestBasicExport):
|
||||
def setUp(self):
|
||||
super(TestDatetimeExport, self).setUp()
|
||||
# set user tz to known value
|
||||
Users = self.registry('res.users')
|
||||
Users.write(self.cr, self.uid, self.uid, {
|
||||
'tz': 'Pacific/Niue'
|
||||
}, context=None)
|
||||
|
||||
def test_date(self):
|
||||
converter = self.get_converter('date')
|
||||
|
||||
value = converter('2011-05-03')
|
||||
|
||||
# default lang/format is US
|
||||
self.assertEqual(value, '05/03/2011')
|
||||
|
||||
def test_datetime(self):
|
||||
converter = self.get_converter('datetime')
|
||||
|
||||
value = converter('2011-05-03 11:12:13')
|
||||
|
||||
# default lang/format is US
|
||||
self.assertEqual(value, '05/03/2011 00:12:13')
|
||||
|
||||
# o2m, m2m?
|
||||
# reference?
|
||||
|
||||
Reference in New Issue
Block a user