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