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