From ac3cd7bed8b0024b363e92fab1adc4e6ee2efa64 Mon Sep 17 00:00:00 2001 From: Daniil Digtyar Vasilieva <daniildigtyar@gmail.com> Date: Fri, 7 Jul 2023 12:36:26 +0200 Subject: [PATCH] [IMP] energy_selfconsumption: wizard able to config csv parsing options --- .../wizards/distribution_table_import_wizard.py | 10 +++++++--- .../wizards/distribution_table_import_wizard_views.xml | 5 +++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/energy_selfconsumption/wizards/distribution_table_import_wizard.py b/energy_selfconsumption/wizards/distribution_table_import_wizard.py index 1ee182dd9..e899047d6 100644 --- a/energy_selfconsumption/wizards/distribution_table_import_wizard.py +++ b/energy_selfconsumption/wizards/distribution_table_import_wizard.py @@ -16,6 +16,10 @@ class DistributionTableImportWizard(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): @@ -47,10 +51,10 @@ class DistributionTableImportWizard(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/distribution_table_import_wizard_views.xml b/energy_selfconsumption/wizards/distribution_table_import_wizard_views.xml index f9a6123f8..0f1f22757 100644 --- a/energy_selfconsumption/wizards/distribution_table_import_wizard_views.xml +++ b/energy_selfconsumption/wizards/distribution_table_import_wizard_views.xml @@ -16,6 +16,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