Use locale format for data export and import

issue8196
review255151002
This commit is contained in:
Cédric Krier committed 2019-03-28 19:22:49 +01:00
1 parent 74547c4251
commit 792ebac88b
3 files changed
+32 -7

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
* Support import of native numeric, date and datetime data
* Add day view on calendar
* Raise NotImplementedError when setting Function field without setter
* Add exports in view_toolbar_get
+14 -6
View File
@@ -834,13 +834,21 @@ class ModelStorage(Model):
elif field_type == 'numeric':
res = Decimal(value) if value else None
elif field_type == 'date':
res = (datetime.datetime.strptime(value,
'%Y-%m-%d').date()
if value else None)
if isinstance(value, datetime.date):
res = value
elif value:
res = datetime.datetime.strptime(
value, '%Y-%m-%d').date()
else:
res = None
elif field_type == 'datetime':
res = (datetime.datetime.strptime(value,
'%Y-%m-%d %H:%M:%S')
if value else None)
if isinstance(value, datetime.datetime):
res = value
elif value:
res = datetime.datetime.strptime(
value, '%Y-%m-%d %H:%M:%S')
else:
res = None
elif field_type == 'many2one':
res = get_many2one(this_field_def['relation'], value)
elif field_type == 'many2many':
+17 -1
View File
@@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import datetime
import unittest
from decimal import InvalidOperation
from decimal import InvalidOperation, Decimal
from trytond.model.exceptions import (
RequiredValidationError, SelectionValidationError, ImportDataError)
@@ -54,6 +55,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Integer.import_data(['integer'],
[['1']]), 1)
self.assertEqual(Integer.import_data(['integer'],
[[1]]), 1)
self.assertEqual(Integer.import_data(['integer'],
[['-1']]), 1)
@@ -116,6 +120,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Float.import_data(['float'],
[['1.1']]), 1)
self.assertEqual(Float.import_data(['float'],
[[1.1]]), 1)
self.assertEqual(Float.import_data(['float'],
[['-1.1']]), 1)
@@ -178,6 +185,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Numeric.import_data(['numeric'],
[['1.1']]), 1)
self.assertEqual(Numeric.import_data(['numeric'],
[[Decimal('1.1')]]), 1)
self.assertEqual(Numeric.import_data(['numeric'],
[['-1.1']]), 1)
@@ -270,6 +280,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Date.import_data(['date'],
[['2010-01-01']]), 1)
self.assertEqual(Date.import_data(['date'],
[[datetime.date(2019, 3, 13)]]), 1)
self.assertEqual(Date.import_data(['date'],
[['']]), 1)
@@ -288,6 +301,9 @@ class ImportDataTestCase(unittest.TestCase):
self.assertEqual(Datetime.import_data(['datetime'],
[['2010-01-01 12:00:00']]), 1)
self.assertEqual(Datetime.import_data(['datetime'],
[[datetime.datetime(2019, 3, 13, 12, 0)]]), 1)
self.assertEqual(Datetime.import_data(['datetime'],
[['']]), 1)