From 5353192eddf3855bba15c2811be3abf2e3be3f93 Mon Sep 17 00:00:00 2001 From: Luc De Meyer Date: Fri, 23 Oct 2026 17:39:55 +0200 Subject: [PATCH] [MIG] : Migration to 20.0 --- account_ebics/__manifest__.py | 4 +-- account_ebics/models/ebics_config.py | 2 +- account_ebics/models/ebics_file.py | 20 ++++++------- account_ebics/security/ebics_security.xml | 29 ------------------ account_ebics/security/ir.access.csv | 15 ++++++++++ account_ebics/security/ir.model.access.csv | 13 --------- account_ebics/views/menu.xml | 34 +++++++++++----------- account_ebics/wizards/ebics_xfer.py | 7 ++--- 8 files changed, 47 insertions(+), 77 deletions(-) create mode 100644 account_ebics/security/ir.access.csv delete mode 100644 account_ebics/security/ir.model.access.csv diff --git a/account_ebics/__manifest__.py b/account_ebics/__manifest__.py index 1ad0301..6547882 100644 --- a/account_ebics/__manifest__.py +++ b/account_ebics/__manifest__.py @@ -5,7 +5,7 @@ "name": "EBICS Banking Protocol", "summary": "Download bank statements and upload payment " "files directly from Odoo, using the European EBICS standard", - "version": "19.0.1.3.1", + "version": "20.0.1.0.0", "license": "LGPL-3", "author": "Noviat", "website": "https://www.noviat.com/", @@ -13,7 +13,7 @@ "depends": ["account"], "data": [ "security/ebics_security.xml", - "security/ir.model.access.csv", + "security/ir.access.csv", "data/ebics_file_format.xml", "views/ebics_config_views.xml", "views/ebics_file_views.xml", diff --git a/account_ebics/models/ebics_config.py b/account_ebics/models/ebics_config.py index 463653a..0665f15 100644 --- a/account_ebics/models/ebics_config.py +++ b/account_ebics/models/ebics_config.py @@ -8,7 +8,7 @@ import re from odoo import api, fields, models from odoo.exceptions import UserError -_logger = logging.getLogger(__name__) +_logger = logging.getLogger(__name__) # lint-ignore=unused-logger class EbicsConfig(models.Model): diff --git a/account_ebics/models/ebics_file.py b/account_ebics/models/ebics_file.py index b63df42..7e6c956 100644 --- a/account_ebics/models/ebics_file.py +++ b/account_ebics/models/ebics_file.py @@ -1,7 +1,6 @@ # Copyright 2009-2025 Noviat. # License LGPL-3 or later (https://www.gnu.org/licenses/lgpl). -import base64 import logging from copy import deepcopy from sys import exc_info @@ -12,9 +11,9 @@ from lxml import etree from odoo import api, fields, models from odoo.exceptions import UserError -from odoo.addons.base.models.res_bank import sanitize_account_number +from odoo.addons.base.models.res_partner_bank import sanitize_account_number -_logger = logging.getLogger(__name__) +_logger = logging.getLogger(__name__) # lint-ignore=unused-logger DUP_CHECK_FORMATS = ["cfonb120", "camt053"] @@ -202,7 +201,7 @@ class EbicsFile(models.Model): [ ("type", "=", "bank"), ( - "bank_account_id.sanitized_acc_number", + "bank_account_id.sanitized_account_number", "ilike", acc_number, ), @@ -381,7 +380,7 @@ class EbicsFile(models.Model): Statements without transactions are removed. """ datas = [] - file_data = base64.b64decode(self.data).replace(b"\n", b"").replace(b"\r", b"") + file_data = bytes(self.data).replace(b"\n", b"").replace(b"\r", b"") if len(file_data) % 120: message = self.env._( "Incorrect CFONB120 file:\nthe file is not divisible in 120 char lines" @@ -413,7 +412,7 @@ class EbicsFile(models.Model): "acc_number": acc_number, "journal_id": journal.id, "company_id": journal.company_id.id, - "data": base64.b64encode(st_lines), + "data": st_lines, } ) st_lines = b"" @@ -500,7 +499,7 @@ class EbicsFile(models.Model): .with_context(active_model="ebics.file") .create({"statement_filename": self.name}) ) - wiz.import_single_file(base64.b64decode(st_data["data"]), res) + wiz.import_single_file(st_data["data"], res) def _process_bank_statement_oe(self, res, st_datas): """ @@ -530,8 +529,7 @@ class EbicsFile(models.Model): .create( { "name": self.name, - "datas": st_data["data"], - "store_fname": self.name, + "raw": st_data["data"], } ) ) @@ -565,7 +563,7 @@ class EbicsFile(models.Model): Statements without transactions are removed. """ datas = [] - file_data = base64.b64decode(self.data) + file_data = bytes(self.data) root = etree.fromstring(file_data, parser=etree.XMLParser(recover=True)) if root is None: message = self.env._("Invalid XML file.") @@ -623,7 +621,7 @@ class EbicsFile(models.Model): "acc_number": acc_number, "journal_id": journal.id, "company_id": journal.company_id.id, - "data": base64.b64encode(etree.tostring(root_new)), + "data": etree.tostring(root_new), } ) diff --git a/account_ebics/security/ebics_security.xml b/account_ebics/security/ebics_security.xml index 7206b0b..c2ae520 100644 --- a/account_ebics/security/ebics_security.xml +++ b/account_ebics/security/ebics_security.xml @@ -8,33 +8,4 @@ EBICS Manager - - - - EBICS Configuration model company rule - - - ['|', ('company_ids', '=', False), ('company_ids', 'in', user.company_ids.ids)] - - - - EBICS UserID model company rule - - - ['|', ('company_ids', '=', False), ('company_ids', 'in', user.company_ids.ids)] - - - - EBICS File model company rule - - - ['|', ('company_ids', '=', False), ('company_ids', 'in', user.company_ids.ids)] - - diff --git a/account_ebics/security/ir.access.csv b/account_ebics/security/ir.access.csv new file mode 100644 index 0000000..297d576 --- /dev/null +++ b/account_ebics/security/ir.access.csv @@ -0,0 +1,15 @@ +id,name,model_id,group_id/id,operation,domain +access_ebics_config_manager,ebics_config manager,ebics.config,account_ebics.group_ebics_manager,crud, +access_ebics_config_user,ebics_config user,ebics.config,account.group_account_invoice,r, +access_ebics_userid_manager,ebics_userid manager,ebics.userid,account_ebics.group_ebics_manager,crud, +access_ebics_userid_user,ebics_userid user,ebics.userid,account.group_account_invoice,r, +access_ebics_file_format_manager,ebics_file_format manager,ebics.file.format,account_ebics.group_ebics_manager,crud, +access_ebics_file_format_user,ebics_file_format user,ebics.file.format,account.group_account_invoice,r, +access_ebics_file_manager,ebics_file manager,ebics.file,account_ebics.group_ebics_manager,crud, +access_ebics_file_user,ebics_file user,ebics.file,account.group_account_invoice,cru, +access_ebics_change_passphrase,access_ebics_change_passphrase,ebics.change.passphrase,account_ebics.group_ebics_manager,cru, +access_ebics_xfer,access_ebics_xfer,ebics.xfer,account.group_account_invoice,cru, +access_ebics_admin_order,access_ebics_admin_order,ebics.admin.order,account_ebics.group_ebics_manager,cru, +ebics_config_comp_rule,EBICS Configuration model company rule,ebics.config,,crud,"['|', ('company_ids', '=', False), ('company_ids', 'in', company_ids)]" +ebics_userid_comp_rule,EBICS UserID model company rule,ebics.userid,,crud,"['|', ('company_ids', '=', False), ('company_ids', 'in', company_ids)]" +ebics_file_comp_rule,EBICS File model company rule,ebics.file,,crud,"['|', ('company_ids', '=', False), ('company_ids', 'in', company_ids)]" diff --git a/account_ebics/security/ir.model.access.csv b/account_ebics/security/ir.model.access.csv deleted file mode 100644 index 97d1f3f..0000000 --- a/account_ebics/security/ir.model.access.csv +++ /dev/null @@ -1,13 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_ebics_config_manager,ebics_config manager,model_ebics_config,group_ebics_manager,1,1,1,1 -access_ebics_config_user,ebics_config user,model_ebics_config,account.group_account_invoice,1,0,0,0 -access_ebics_userid_manager,ebics_userid manager,model_ebics_userid,group_ebics_manager,1,1,1,1 -access_ebics_userid_user,ebics_userid user,model_ebics_userid,account.group_account_invoice,1,0,0,0 -access_ebics_file_format_manager,ebics_file_format manager,model_ebics_file_format,group_ebics_manager,1,1,1,1 -access_ebics_file_format_user,ebics_file_format user,model_ebics_file_format,account.group_account_invoice,1,0,0,0 -access_ebics_file_manager,ebics_file manager,model_ebics_file,group_ebics_manager,1,1,1,1 -access_ebics_file_user,ebics_file user,model_ebics_file,account.group_account_invoice,1,1,1,0 - -access_ebics_change_passphrase,access_ebics_change_passphrase,model_ebics_change_passphrase,group_ebics_manager,1,1,1,0 -access_ebics_xfer,access_ebics_xfer,model_ebics_xfer,account.group_account_invoice,1,1,1,0 -access_ebics_admin_order,access_ebics_admin_order,model_ebics_admin_order,group_ebics_manager,1,1,1,0 diff --git a/account_ebics/views/menu.xml b/account_ebics/views/menu.xml index b77f1f8..2f84714 100644 --- a/account_ebics/views/menu.xml +++ b/account_ebics/views/menu.xml @@ -7,27 +7,11 @@ sequence="4" /> - - - - + + + +