From 662ae6db1961e28be64c8fb20dbb03104cc10826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Fri, 27 Jan 2023 12:42:01 +0100 Subject: [PATCH] pattern_import_export_xlsx: support date/datetime --- pattern_import_export_xlsx/models/pattern_file.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pattern_import_export_xlsx/models/pattern_file.py b/pattern_import_export_xlsx/models/pattern_file.py index 680528ea..c96180f1 100644 --- a/pattern_import_export_xlsx/models/pattern_file.py +++ b/pattern_import_export_xlsx/models/pattern_file.py @@ -3,16 +3,26 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). import base64 +from datetime import date, datetime from io import BytesIO import openpyxl -from odoo import _, models +from odoo import _, fields, models from odoo.exceptions import UserError STOP_AFTER_NBR_EMPTY = 10 +def format_data(value): + if isinstance(value, datetime): + return fields.Datetime.to_string(value) + elif isinstance(value, date): + return fields.Date.to_string(value) + else: + return value + + class PatternFile(models.Model): _inherit = "pattern.file" @@ -48,7 +58,7 @@ def _parse_data_xlsx(self, data): if self.pattern_config_id.nr_of_header_rows == idx + 1: headers = [x.value for x in row] elif headers: - vals = [x.value for x in row] + vals = [format_data(x.value) for x in row] if any(vals): count_empty = 0 item = dict(zip(headers, vals))