From bfc69d7c3ecd596fa8579d97aebd7232dbae70b4 Mon Sep 17 00:00:00 2001 From: Daniil Digtyar Vasilieva <daniildigtyar@gmail.com> Date: Thu, 3 Aug 2023 15:20:28 +0200 Subject: [PATCH] [IMP]energy_selfconsumption: added date_format field for configuration of parsing effective_date --- .../wizards/selfconsumption_import_wizard.py | 25 +++++++++++-------- .../selfconsumption_import_wizard_views.xml | 1 + 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/energy_selfconsumption/wizards/selfconsumption_import_wizard.py b/energy_selfconsumption/wizards/selfconsumption_import_wizard.py index 97e9a54d1..3c8538b98 100644 --- a/energy_selfconsumption/wizards/selfconsumption_import_wizard.py +++ b/energy_selfconsumption/wizards/selfconsumption_import_wizard.py @@ -1,5 +1,6 @@ import base64 import logging +from datetime import datetime from csv import reader from io import StringIO @@ -34,6 +35,12 @@ class SelfconsumptionImportWizard(models.TransientModel): string="File Encoding", help="Enconding format in import CSV file.", ) + date_format = fields.Char( + default="%d/%m/%Y", + required=True, + string="Date Format", + help="Date format for effective date.", + ) @api.constrains("import_file") def _constrains_import_file(self): @@ -132,23 +139,19 @@ class SelfconsumptionImportWizard(models.TransientModel): ) if not project.inscription_ids.filtered_domain( - [("partner_id", "=", partner.id)] + [("partner_id", "=", partner.id)] ): - if line_dict["effective_date"]: - try: - effective_date_iso = fields.date.fromisoformat(line_dict["effective_date"]) - except ValueError as e: - return False, _("Could not create inscription for {vat}. {error}").format( - vat=line_dict["partner_vat"], error=e - ) - else: - effective_date_iso = fields.date.today() try: + if line_dict["effective_date"]: + effective_date = datetime.strptime(line_dict["effective_date"], self.date_format).date() + else: + effective_date = fields.date.today() + self.env["energy_project.inscription"].create( { "project_id": project.id, "partner_id": partner.id, - "effective_date": effective_date_iso, + "effective_date": effective_date, } ) except Exception as e: diff --git a/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml b/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml index 67f8b4e78..0824413e1 100644 --- a/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml +++ b/energy_selfconsumption/wizards/selfconsumption_import_wizard_views.xml @@ -17,6 +17,7 @@ <field name="fname" invisible="1"></field> </group> <group> + <field name="date_format"></field> <field name="delimiter"></field> <field name="quotechar"></field> <field name="encoding"></field> -- GitLab