From bc91794b035ff71e8b1478216f702dc7c2759a97 Mon Sep 17 00:00:00 2001 From: Daniil Digtyar Vasilieva <daniildigtyar@gmail.com> Date: Fri, 7 Jul 2023 12:37:50 +0200 Subject: [PATCH] [IMP] energy_selfconsumption: selfconsumption wizard able to config csv parsing options --- .../wizards/selfconsumption_import_wizard.py | 9 ++++++--- .../wizards/selfconsumption_import_wizard_views.xml | 5 +++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/energy_selfconsumption/wizards/selfconsumption_import_wizard.py b/energy_selfconsumption/wizards/selfconsumption_import_wizard.py index d3090df5e..8c825ba0e 100644 --- a/energy_selfconsumption/wizards/selfconsumption_import_wizard.py +++ b/energy_selfconsumption/wizards/selfconsumption_import_wizard.py @@ -14,6 +14,9 @@ class SelfconsumptionImportWizard(models.TransientModel): import_file = fields.Binary(string="Import File (*.csv)") fname = fields.Char(string="File Name") + delimiter = fields.Char(default=',', required=True, string='File Delimiter', help='Delimiter in import CSV file.') + quotechar = fields.Char(default='"', required=True, string='File Quotechar', help='Quotechar in import CSV file.') + encoding = fields.Char(default='utf-8', required=True, string='File Encoding', help='Enconding format in import CSV file.') @api.constrains('import_file') def _constrains_import_file(self): @@ -45,10 +48,10 @@ class SelfconsumptionImportWizard(models.TransientModel): try: csv_options = {} - csv_options["delimiter"] = ',' - csv_options["quotechar"] = '"' + csv_options["delimiter"] = self.delimiter + csv_options["quotechar"] = self.quotechar try: - decoded_file = data_file.decode("utf-8") + decoded_file = data_file.decode(self.encoding) except UnicodeDecodeError: detected_encoding = chardet.detect(data_file).get("encoding", False) if not detected_encoding: diff --git a/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml b/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml index fe5622018..b62e92008 100644 --- a/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml +++ b/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml @@ -12,6 +12,11 @@ <field name="import_file" filename="fname" widget="binary"></field> <field name="fname" invisible="1"></field> </group> + <group> + <field name="delimiter"></field> + <field name="quotechar"></field> + <field name="encoding"></field> + </group> </sheet> <footer> <button type="object" name="import_file_button">IMPORT</button> -- GitLab