[ADD] formatting of date and datetime t-field

bzr revid: xmo@openerp.com-20131021152639-2o2j2knhuppdlbzm
This commit is contained in:
Xavier Morel
2013-10-21 17:26:39 +02:00
parent 61b306edc0
commit b9dfef2fab
3 changed files with 61 additions and 0 deletions
+34
View File
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
114 access_ir_qweb access_ir_qweb model_ir_qweb 0 0 0 0
115 access_ir_qweb_field access_ir_qweb_field model_ir_qweb_field 0 0 0 0
116 access_ir_qweb_field_float access_ir_qweb_field_float model_ir_qweb_field_float 0 0 0 0
117 access_ir_qweb_field_date access_ir_qweb_field_date model_ir_qweb_field_date 0 0 0 0
118 access_ir_qweb_field_datetime access_ir_qweb_field_datetime model_ir_qweb_field_datetime 0 0 0 0
119 access_ir_qweb_field_text access_ir_qweb_field_text model_ir_qweb_field_text 0 0 0 0
120 access_ir_qweb_field_selection access_ir_qweb_field_selection model_ir_qweb_field_selection 0 0 0 0
121 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?