Skip to content

Commit

Permalink
[FIX] base_jsonify: In odoo 12, Date and Datetime fields values are d…
Browse files Browse the repository at this point in the history
…atetime object

Convert fields.Date and fields.Datetime values to string when serializing to json
  • Loading branch information
lmignon committed Oct 30, 2019
1 parent 183e97b commit 560ba5b
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
6 changes: 5 additions & 1 deletion base_jsonify/models/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Raphaël Reverdy <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, models
from odoo import api, fields, models
from odoo.exceptions import UserError
from odoo.tools.translate import _

Expand Down Expand Up @@ -71,6 +71,10 @@ def jsonify(self, parser):
value = rec[field_name]
if value is False and field_type != 'boolean':
value = None
elif field_type == "date":
value = fields.Date.to_string(value)
elif field_type == "datetime":
value = fields.Datetime.to_string(value)
res[json_key] = value
result.append(res)
return result
10 changes: 8 additions & 2 deletions base_jsonify/tests/test_get_parser.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Copyright 2017 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields
from odoo.tests.common import TransactionCase


Expand Down Expand Up @@ -54,7 +55,9 @@ def test_json_export(self):
]),
('country_id:country', ['code', 'name']),
'active',
('category_id', ['name'])
('category_id', ['name']),
'create_date',
'date',
]
partner = self.env['res.partner'].create({
'name': 'Akretion',
Expand All @@ -67,6 +70,7 @@ def test_json_export(self):
'country_id': self.env.ref('base.fr').id
})
],
'date': fields.Date.today()
})
expected_json = {
'lang': 'en_US',
Expand All @@ -91,7 +95,9 @@ def test_json_export(self):
'children': [],
'name': 'Sebatien Beau',
'email': None
}]
}],
'create_date': fields.Datetime.to_string(partner.create_date),
'date': fields.Date.to_string(partner.date)
}
json_partner = partner.jsonify(parser)

Expand Down

0 comments on commit 560ba5b

Please sign in to comment.