From ce6d3da66c274c387f89fda187dd2fe1d6bd57aa Mon Sep 17 00:00:00 2001 From: evgeny-l Date: Wed, 21 Jun 2023 13:34:37 +0200 Subject: [PATCH] [IMP] account_ebics: correct support of ebics.userid.user_ids filter, ebics-key UI designation improvement --- account_ebics/__manifest__.py | 2 +- account_ebics/models/ebics_userid.py | 11 +++++ account_ebics/views/ebics_userid_views.xml | 1 + account_ebics/wizards/ebics_xfer.py | 49 +++++++++++++--------- account_ebics/wizards/ebics_xfer.xml | 8 ++-- 5 files changed, 47 insertions(+), 24 deletions(-) diff --git a/account_ebics/__manifest__.py b/account_ebics/__manifest__.py index 4afd992..4d56d8f 100644 --- a/account_ebics/__manifest__.py +++ b/account_ebics/__manifest__.py @@ -3,7 +3,7 @@ { "name": "EBICS banking protocol", - "version": "16.0.1.2.0", + "version": "16.0.1.3.0", "license": "LGPL-3", "author": "Noviat", "website": "https://www.noviat.com", diff --git a/account_ebics/models/ebics_userid.py b/account_ebics/models/ebics_userid.py index 9ed6f93..f60b04c 100644 --- a/account_ebics/models/ebics_userid.py +++ b/account_ebics/models/ebics_userid.py @@ -84,6 +84,17 @@ class EbicsUserID(models.Model): "This default can be overriden for specific " "EBICS transactions (cf. File Formats).", ) + ui_designation = fields.Selection( + [ + ("both", "Download and Upload"), + ("down", "Download Only"), + ("up", "Upload Only"), + ], + string="UI Designation", + default="both", + required=True, + help="Defines in what form this User will be available for selection.", + ) ebics_keys_fn = fields.Char(compute="_compute_ebics_keys_fn") ebics_keys_found = fields.Boolean(compute="_compute_ebics_keys_found") ebics_passphrase = fields.Char(string="EBICS Passphrase") diff --git a/account_ebics/views/ebics_userid_views.xml b/account_ebics/views/ebics_userid_views.xml index c174db2..22f46b6 100644 --- a/account_ebics/views/ebics_userid_views.xml +++ b/account_ebics/views/ebics_userid_views.xml @@ -95,6 +95,7 @@ /> + diff --git a/account_ebics/wizards/ebics_xfer.py b/account_ebics/wizards/ebics_xfer.py index 2332164..4d68825 100644 --- a/account_ebics/wizards/ebics_xfer.py +++ b/account_ebics/wizards/ebics_xfer.py @@ -113,29 +113,40 @@ class EbicsXfer(models.TransientModel): @api.onchange("ebics_config_id") def _onchange_ebics_config_id(self): - ebics_userids = self.ebics_config_id.ebics_userid_ids - if self.env.context.get("ebics_download"): - download_formats = self.ebics_config_id.ebics_file_format_ids.filtered( + avail_userids = self.ebics_config_id.ebics_userid_ids.filtered( + lambda r: self.env.user.id in r.user_ids.ids + ) + + if self.env.context.get("ebics_download"): # Download Form + avail_formats = self.ebics_config_id.ebics_file_format_ids.filtered( lambda r: r.type == "down" ) - if len(download_formats) == 1: - self.format_id = download_formats - if len(ebics_userids) == 1: - self.ebics_userid_id = ebics_userids - else: - transport_users = ebics_userids.filtered( - lambda r: r.signature_class == "T" - ) - if len(transport_users) == 1: - self.ebics_userid_id = transport_users - else: - upload_formats = self.ebics_config_id.ebics_file_format_ids.filtered( + avail_userids = avail_userids.filtered( + lambda r: r.ui_designation in ["both", 'down'] + ) + else: # Upload Form + avail_formats = self.ebics_config_id.ebics_file_format_ids.filtered( lambda r: r.type == "up" ) - if len(upload_formats) == 1: - self.format_id = upload_formats - if len(ebics_userids) == 1: - self.ebics_userid_id = ebics_userids + avail_userids = avail_userids.filtered( + lambda r: r.ui_designation in ["both", "up"] + ) + + if avail_formats and len(avail_formats) == 1: + self.format_id = avail_formats + else: + self.format_id = False + if avail_userids: + if len(avail_userids) == 1: + self.ebics_userid_id = avail_userids + else: + with_passphrs_userids = avail_userids.filtered( + lambda r: r.ebics_passphrase_store + ) + if len(with_passphrs_userids) == 1: + self.ebics_userid_id = with_passphrs_userids + else: + self.ebics_userid_id = False @api.onchange("upload_data") def _onchange_upload_data(self): diff --git a/account_ebics/wizards/ebics_xfer.xml b/account_ebics/wizards/ebics_xfer.xml index 5439285..3f691de 100644 --- a/account_ebics/wizards/ebics_xfer.xml +++ b/account_ebics/wizards/ebics_xfer.xml @@ -16,7 +16,7 @@ /> @@ -69,7 +69,7 @@ /> @@ -143,7 +143,7 @@ - EBICS File Transfer + EBICS File Transfer - Download ir.actions.act_window ebics.xfer form @@ -153,7 +153,7 @@ - EBICS File Transfer + EBICS File Transfer - Upload ir.actions.act_window ebics.xfer form