From eea5a8533f11049a9bcfa3eb1fa6afa15b9a2151 Mon Sep 17 00:00:00 2001 From: Daniil Digtyar Vasilieva <daniildigtyar@gmail.com> Date: Thu, 22 Jun 2023 12:31:42 +0200 Subject: [PATCH] [IMP] check to only upload csv files --- .../wizards/selfconsumption_import_wizard.py | 15 +++++++++------ .../selfconsumption_import_wizard_views.xml | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/energy_selfconsumption/wizards/selfconsumption_import_wizard.py b/energy_selfconsumption/wizards/selfconsumption_import_wizard.py index bd193358b..d5f8ec8be 100644 --- a/energy_selfconsumption/wizards/selfconsumption_import_wizard.py +++ b/energy_selfconsumption/wizards/selfconsumption_import_wizard.py @@ -1,5 +1,5 @@ -from odoo import fields, models, _ -from odoo.exceptions import UserError +from odoo import fields, models, _, api +from odoo.exceptions import UserError, ValidationError import base64 import logging from io import StringIO @@ -12,11 +12,14 @@ logger = logging.getLogger(__name__) class SelfconsumptionImportWizard(models.TransientModel): _name = 'energy_selfconsumption.selfconsumption_import.wizard' - name = fields.Char() import_file = fields.Binary(string="Import File (*.csv)") - fname = fields.Char( - string="Template Name", readonly=True - ) + fname = fields.Char(string="File Name") + + @api.constrains('import_file') + def _constrains_import_file(self): + format = str(self.fname.split(".")[1]) + if format != 'csv': + raise ValidationError("Only csv format files are accepted.") def import_file_button(self): file_data = base64.b64decode(self.import_file) diff --git a/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml b/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml index 38e25e300..fe5622018 100644 --- a/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml +++ b/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml @@ -9,7 +9,8 @@ <form> <sheet> <group> - <field name="import_file"></field> + <field name="import_file" filename="fname" widget="binary"></field> + <field name="fname" invisible="1"></field> </group> </sheet> <footer> -- GitLab