[IMP]account_ebics: file format filter on ebics_upload

Set file format fiter when creating the ebics.xfer wizard from a python method,
e.g. 'EBICS UPLOAD' button on payment order.
This commit is contained in:
Luc De Meyer 2024-05-06 20:15:49 +02:00
parent 8438a10c57
commit e0f47ee766
5 changed files with 20 additions and 13 deletions

View File

@ -1,9 +1,9 @@
# Copyright 2009-2022 Noviat. # Copyright 2009-2024 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lpgl). # License LGPL-3 or later (http://www.gnu.org/licenses/lpgl).
{ {
'name': 'EBICS banking protocol', 'name': 'EBICS banking protocol',
'version': '13.0.1.3.3', 'version': '13.0.1.4.0',
'license': 'LGPL-3', 'license': 'LGPL-3',
'author': 'Noviat', 'author': 'Noviat',
'website': 'www.noviat.com', 'website': 'www.noviat.com',

View File

@ -53,7 +53,7 @@ class EbicsChangePassphrase(models.TransientModel):
keyring.change_passphrase(self.new_pass) keyring.change_passphrase(self.new_pass)
except ValueError as e: except ValueError as e:
raise UserError(str(e)) raise UserError(str(e))
self.ebics_userid_id.ebics_passphrase = self.new_pass self.ebics_userid_id.ebics_passphrase = self.new_pass
self.note = "The EBICS Passphrase has been changed." self.note = "The EBICS Passphrase has been changed."
module = __name__.split('addons.')[1].split('.')[0] module = __name__.split('addons.')[1].split('.')[0]

View File

@ -1,13 +1,6 @@
# Copyright 2009-2022 Noviat. # Copyright 2009-2024 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lpgl). # License LGPL-3 or later (http://www.gnu.org/licenses/lpgl).
"""
import logging
logging.basicConfig(
level=logging.DEBUG,
format='[%(asctime)s] %(levelname)s - %(name)s: %(message)s')
"""
import base64 import base64
import logging import logging
import os import os
@ -66,6 +59,9 @@ class EbicsXfer(models.TransientModel):
string='EBICS File Format', string='EBICS File Format',
help="Select EBICS File Format to upload/download." help="Select EBICS File Format to upload/download."
"\nLeave blank to download all available files.") "\nLeave blank to download all available files.")
upload_format_ids = fields.Many2many(
comodel_name="ebics.file.format",
compute="_compute_upload_format_ids")
order_type = fields.Char( order_type = fields.Char(
related='format_id.order_type', related='format_id.order_type',
string='Order Type', string='Order Type',
@ -91,6 +87,14 @@ class EbicsXfer(models.TransientModel):
else: else:
return cfg_mod return cfg_mod
@api.depends("ebics_config_id")
def _compute_upload_format_ids(self):
for rec in self:
rec.upload_format_ids = False
if not self.env.context.get("ebics_download"):
rec.upload_format_ids = rec.ebics_config_id\
.ebics_file_format_ids.filtered(lambda r: r.type == "up")
@api.onchange('ebics_config_id') @api.onchange('ebics_config_id')
def _onchange_ebics_config_id(self): def _onchange_ebics_config_id(self):
ebics_userids = self.ebics_config_id.ebics_userid_ids ebics_userids = self.ebics_config_id.ebics_userid_ids

View File

@ -45,7 +45,10 @@
<field name="upload_data" filename="upload_fname" required="1"/> <field name="upload_data" filename="upload_fname" required="1"/>
<field name="upload_fname" invisible="1"/> <field name="upload_fname" invisible="1"/>
<field name="upload_fname_dummy"/> <field name="upload_fname_dummy"/>
<field name="format_id" required="1"/> <field name="upload_format_ids" invisible="1"/>
<field name="format_id"
domain="[('id', 'in', upload_format_ids)]"
required="1"/>
<field name="order_type"/> <field name="order_type"/>
<field name="test_mode" attrs="{'invisible': [('order_type', '!=', 'FUL')]}"/> <field name="test_mode" attrs="{'invisible': [('order_type', '!=', 'FUL')]}"/>
</group> </group>

View File

@ -41,7 +41,7 @@ class AccountPaymentOrder(models.Model):
'default_upload_data': attach.datas, 'default_upload_data': attach.datas,
'default_upload_fname': attach.name, 'default_upload_fname': attach.name,
'origin': origin, 'origin': origin,
'force_comany': self.company_id.id, 'force_company': self.company_id.id,
}) })
ebics_xfer = self.env['ebics.xfer'].with_context(ctx).create({}) ebics_xfer = self.env['ebics.xfer'].with_context(ctx).create({})
ebics_xfer._onchange_ebics_config_id() ebics_xfer._onchange_ebics_config_id()