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