Merge pull request #54 from Noviat/18.0

Syncing from upstream Noviat/account_ebics (18.0)
This commit is contained in:
braintec 2025-01-05 10:07:39 +01:00 committed by GitHub
commit c142e0e997
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 640 additions and 562 deletions

View File

@ -1,4 +1,4 @@
# Copyright 2009-2024 Noviat. # Copyright 2009-2025 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl). # License LGPL-3 or later (http://www.gnu.org/licenses/lgpl).
{ {

View File

@ -323,6 +323,7 @@ msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__done #: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__done
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_file_view_search
msgid "Done" msgid "Done"
msgstr "" msgstr ""
@ -355,6 +356,7 @@ msgid "Download Only"
msgstr "" msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__download_process_method
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file_format__download_process_method #: model:ir.model.fields,field_description:account_ebics.field_ebics_file_format__download_process_method
msgid "Download Process Method" msgid "Download Process Method"
msgstr "" msgstr ""
@ -368,6 +370,7 @@ msgstr ""
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_config__state__draft #: model:ir.model.fields.selection,name:account_ebics.selection__ebics_config__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__draft #: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__draft #: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__draft
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_file_view_search
msgid "Draft" msgid "Draft"
msgstr "" msgstr ""
@ -819,6 +822,7 @@ msgid "Enable 3SKey support"
msgstr "" msgstr ""
#. module: account_ebics #. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file__download_process_method
#: model:ir.model.fields,help:account_ebics.field_ebics_file_format__download_process_method #: model:ir.model.fields,help:account_ebics.field_ebics_file_format__download_process_method
msgid "" msgid ""
"Enable processing within Odoo of the downloaded file via the 'Process' " "Enable processing within Odoo of the downloaded file via the 'Process' "

View File

@ -0,0 +1,15 @@
# Copyright 2009-2025 Noviat.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
def migrate(cr, version):
cr.execute( # pylint: disable=E8103
"""
UPDATE ebics_file ef
SET state = 'done'
FROM ebics_file_format eff
WHERE ef.format_id = eff.id
AND eff.type = 'down'
AND eff.download_process_method IS NULL;
"""
)

View File

@ -1,4 +1,4 @@
# Copyright 2009-2024 Noviat. # Copyright 2009-2025 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl). # License LGPL-3 or later (http://www.gnu.org/licenses/lgpl).
import base64 import base64
@ -36,7 +36,10 @@ class EbicsFile(models.Model):
format_id = fields.Many2one( format_id = fields.Many2one(
comodel_name="ebics.file.format", string="EBICS File Formats", readonly=True comodel_name="ebics.file.format", string="EBICS File Formats", readonly=True
) )
type = fields.Selection(related="format_id.type", readonly=True) download_process_method = fields.Selection(
related="format_id.download_process_method"
)
type = fields.Selection(related="format_id.type")
date_from = fields.Date( date_from = fields.Date(
readonly=True, help="'Date From' as entered in the download wizard." readonly=True, help="'Date From' as entered in the download wizard."
) )
@ -306,7 +309,6 @@ class EbicsFile(models.Model):
return { return {
"name": self.env._("Import EBICS File"), "name": self.env._("Import EBICS File"),
"res_id": self.id, "res_id": self.id,
"view_type": "form",
"view_mode": "form", "view_mode": "form",
"res_model": self._name, "res_model": self._name,
"view_id": result_view.id, "view_id": result_view.id,

View File

@ -587,7 +587,6 @@ class EbicsUserID(models.Model):
view = self.env.ref("%s.ebics_change_passphrase_view_form" % module) view = self.env.ref("%s.ebics_change_passphrase_view_form" % module)
return { return {
"name": self.env._("EBICS keys change passphrase"), "name": self.env._("EBICS keys change passphrase"),
"view_type": "form",
"view_mode": "form", "view_mode": "form",
"res_model": "ebics.change.passphrase", "res_model": "ebics.change.passphrase",
"view_id": view.id, "view_id": view.id,

View File

@ -1,4 +1,4 @@
<?xml version="1.0" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="ebics_config_view_list" model="ir.ui.view"> <record id="ebics_config_view_list" model="ir.ui.view">
@ -71,11 +71,20 @@
</group> </group>
</group> </group>
<notebook> <notebook>
<page string="EBICS Users" groups="account_ebics.group_ebics_manager"> <page
string="EBICS Users"
groups="account_ebics.group_ebics_manager"
>
<field name="ebics_userid_ids" readonly="state != 'draft'" /> <field name="ebics_userid_ids" readonly="state != 'draft'" />
</page> </page>
<page string="File Formats" groups="account_ebics.group_ebics_manager"> <page
<field name="ebics_file_format_ids" readonly="state != 'draft'" /> string="File Formats"
groups="account_ebics.group_ebics_manager"
>
<field
name="ebics_file_format_ids"
readonly="state != 'draft'"
/>
</page> </page>
</notebook> </notebook>
</form> </form>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="ebics_file_format_view_list" model="ir.ui.view"> <record id="ebics_file_format_view_list" model="ir.ui.view">

View File

@ -1,4 +1,4 @@
<?xml version="1.0" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="ebics_file_view_search" model="ir.ui.view"> <record id="ebics_file_view_search" model="ir.ui.view">
@ -6,7 +6,6 @@
<field name="model">ebics.file</field> <field name="model">ebics.file</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Search EBICS Files"> <search string="Search EBICS Files">
<group col="10" colspan="4">
<field name="date_from" /> <field name="date_from" />
<field name="date_to" /> <field name="date_to" />
<field name="name" /> <field name="name" />
@ -17,16 +16,28 @@
widget="selection" widget="selection"
groups="base.group_multi_company" groups="base.group_multi_company"
/> />
</group> <filter
<newline /> string="Draft"
name="draft"
domain="[('state', '=', 'draft')]"
/>
<filter string="Done" name="done" domain="[('state', '=', 'done')]" />
<group expand="0" string="Group By"> <group expand="0" string="Group By">
<filter <filter
string="File Format" string="File Format"
name="file_format" name="file_format"
context="{'group_by':'format_id'}" context="{'group_by':'format_id'}"
/> />
<filter string="State" name="state" context="{'group_by':'state'}" /> <filter
<filter string="User" name="user" context="{'group_by':'user_id'}" /> string="State"
name="state"
context="{'group_by':'state'}"
/>
<filter
string="User"
name="user"
context="{'group_by':'user_id'}"
/>
</group> </group>
</search> </search>
</field> </field>
@ -62,9 +73,10 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="EBICS File" create="false"> <form string="EBICS File" create="false">
<header> <header>
<field name="download_process_method" invisible="1" />
<button <button
name="set_to_draft" name="set_to_draft"
invisible="state != 'done'" invisible="not download_process_method or state != 'done'"
string="Set to Draft" string="Set to Draft"
type="object" type="object"
groups="account.group_account_manager" groups="account.group_account_manager"
@ -72,7 +84,7 @@
<button <button
name="process" name="process"
class="oe_highlight" class="oe_highlight"
invisible="state != 'draft'" invisible="not download_process_method or state != 'draft'"
string="Process" string="Process"
type="object" type="object"
groups="account.group_account_invoice" groups="account.group_account_invoice"
@ -80,28 +92,38 @@
/> />
<button <button
name="set_to_done" name="set_to_done"
invisible="state != 'draft'" invisible="not download_process_method or state != 'draft'"
string="Set to Done" string="Set to Done"
type="object" type="object"
groups="account.group_account_manager" groups="account.group_account_manager"
/> />
<field name="state" widget="statusbar" /> <field
name="state"
widget="statusbar"
invisible="not download_process_method"
/>
</header> </header>
<group colspan="4" col="4"> <group name="main">
<field name="date" string="Download Date" /> <group name="main-full-screen" colspan="2" col="2">
<field name="name" /> <field name="name" />
<field name="data" filename="name" /> <field name="data" filename="name" />
<field name="format_id" /> <field name="format_id" />
<field name="date_from" /> </group>
<field name="date_to" /> <group name="main-left">
<field name="date" string="Download Date" />
<field name="user_id" /> <field name="user_id" />
<field name="ebics_userid_id" /> <field name="ebics_userid_id" />
</group>
<group name="main-right">
<field name="date_from" />
<field name="date_to" />
<field <field
name="company_ids" name="company_ids"
widget="many2many_tags" widget="many2many_tags"
groups="base.group_multi_company" groups="base.group_multi_company"
/> />
</group> </group>
</group>
<notebook> <notebook>
<page string="Additional Information"> <page string="Additional Information">
<field name="note" nolabel="1" /> <field name="note" nolabel="1" />
@ -121,7 +143,13 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Process EBICS File"> <form string="Process EBICS File">
<separator colspan="4" string="Results :" /> <separator colspan="4" string="Results :" />
<field name="note_process" colspan="4" nolabel="1" width="850" height="400" /> <field
name="note_process"
colspan="4"
nolabel="1"
width="850"
height="400"
/>
<footer> <footer>
<button <button
name="action_open_bank_statements" name="action_open_bank_statements"

View File

@ -1,4 +1,4 @@
<?xml version="1.0" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="ebics_userid_view_list" model="ir.ui.view"> <record id="ebics_userid_view_list" model="ir.ui.view">
@ -126,25 +126,42 @@
<field name="ebics_key_x509" readonly="state != 'draft'" /> <field name="ebics_key_x509" readonly="state != 'draft'" />
</group> </group>
</group> </group>
<group name="dn" invisible="not ebics_key_x509" readonly="state != 'draft'"> <group
name="dn"
invisible="not ebics_key_x509"
readonly="state != 'draft'"
>
<div colspan="2" col="1"> <div colspan="2" col="1">
<strong <strong
>Distinguished Name attributes used to create self-signed X.509 certificates:</strong> >Distinguished Name attributes used to create self-signed X.509 certificates:</strong>
</div> </div>
<group name="dn_l"> <group name="dn_l">
<field name="ebics_key_x509_dn_cn" readonly="state != 'draft'" /> <field
name="ebics_key_x509_dn_cn"
readonly="state != 'draft'"
/>
<field name="ebics_key_x509_dn_o" readonly="state != 'draft'" /> <field name="ebics_key_x509_dn_o" readonly="state != 'draft'" />
<field name="ebics_key_x509_dn_l" readonly="state != 'draft'" /> <field name="ebics_key_x509_dn_l" readonly="state != 'draft'" />
<field name="ebics_key_x509_dn_c" readonly="state != 'draft'" /> <field name="ebics_key_x509_dn_c" readonly="state != 'draft'" />
</group> </group>
<group name="dn_r"> <group name="dn_r">
<field name="ebics_key_x509_dn_e" readonly="state != 'draft'" /> <field name="ebics_key_x509_dn_e" readonly="state != 'draft'" />
<field name="ebics_key_x509_dn_ou" readonly="state != 'draft'" /> <field
<field name="ebics_key_x509_dn_st" readonly="state != 'draft'" /> name="ebics_key_x509_dn_ou"
readonly="state != 'draft'"
/>
<field
name="ebics_key_x509_dn_st"
readonly="state != 'draft'"
/>
</group> </group>
</group> </group>
<group name="files"> <group name="files">
<group colspan="2" name="ebics_ini_letter" invisible="not ebics_ini_letter"> <group
colspan="2"
name="ebics_ini_letter"
invisible="not ebics_ini_letter"
>
<field name="ebics_ini_letter_fn" invisible="1" /> <field name="ebics_ini_letter_fn" invisible="1" />
<field name="ebics_ini_letter" filename="ebics_ini_letter_fn" /> <field name="ebics_ini_letter" filename="ebics_ini_letter_fn" />
</group> </group>
@ -154,7 +171,10 @@
invisible="not ebics_public_bank_keys" invisible="not ebics_public_bank_keys"
> >
<field name="ebics_public_bank_keys_fn" invisible="1" /> <field name="ebics_public_bank_keys_fn" invisible="1" />
<field name="ebics_public_bank_keys" filename="ebics_public_bank_keys_fn" /> <field
name="ebics_public_bank_keys"
filename="ebics_public_bank_keys_fn"
/>
</group> </group>
</group> </group>
</form> </form>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<menuitem <menuitem

View File

@ -42,7 +42,6 @@ class EbicsAdminOrder(models.TransientModel):
return { return {
"name": self.env._("EBICS Administrative Order result"), "name": self.env._("EBICS Administrative Order result"),
"res_id": self.id, "res_id": self.id,
"view_type": "form",
"view_mode": "form", "view_mode": "form",
"res_model": "ebics.admin.order", "res_model": "ebics.admin.order",
"view_id": result_view.id, "view_id": result_view.id,

View File

@ -109,7 +109,6 @@ class EbicsChangePassphrase(models.TransientModel):
return { return {
"name": self.env._("EBICS Keys Change Passphrase"), "name": self.env._("EBICS Keys Change Passphrase"),
"res_id": self.id, "res_id": self.id,
"view_type": "form",
"view_mode": "form", "view_mode": "form",
"res_model": "ebics.change.passphrase", "res_model": "ebics.change.passphrase",
"view_id": result_view.id, "view_id": result_view.id,

View File

@ -1,4 +1,4 @@
# Copyright 2009-2024 Noviat. # Copyright 2009-2025 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl). # License LGPL-3 or later (http://www.gnu.org/licenses/lgpl).
import base64 import base64
@ -205,7 +205,6 @@ class EbicsXfer(models.TransientModel):
return { return {
"name": self.env._("EBICS file transfer result"), "name": self.env._("EBICS file transfer result"),
"res_id": self.id, "res_id": self.id,
"view_type": "form",
"view_mode": "form", "view_mode": "form",
"res_model": "ebics.xfer", "res_model": "ebics.xfer",
"view_id": result_view.id, "view_id": result_view.id,
@ -347,7 +346,6 @@ class EbicsXfer(models.TransientModel):
return { return {
"name": self.env._("EBICS file transfer result"), "name": self.env._("EBICS file transfer result"),
"res_id": self.id, "res_id": self.id,
"view_type": "form",
"view_mode": "form", "view_mode": "form",
"res_model": "ebics.xfer", "res_model": "ebics.xfer",
"view_id": result_view.id, "view_id": result_view.id,
@ -612,6 +610,7 @@ class EbicsXfer(models.TransientModel):
"date_from": self.date_from, "date_from": self.date_from,
"date_to": self.date_to, "date_to": self.date_to,
"format_id": file_format.id, "format_id": file_format.id,
"state": file_format.download_process_method and "draft" or "done",
"user_id": self._uid, "user_id": self._uid,
"ebics_userid_id": self.ebics_userid_id.id, "ebics_userid_id": self.ebics_userid_id.id,
"company_ids": self.ebics_config_id.company_ids.ids, "company_ids": self.ebics_config_id.company_ids.ids,

View File

@ -94,7 +94,10 @@
readonly="context.get('active_model') == 'account.payment.order'" readonly="context.get('active_model') == 'account.payment.order'"
/> />
<field name="order_type" /> <field name="order_type" />
<field name="test_mode" invisible="order_type not in ('FUL', 'BTU')" /> <field
name="test_mode"
invisible="order_type not in ('FUL', 'BTU')"
/>
</group> </group>
<footer> <footer>
<button <button

View File

@ -1,4 +1,4 @@
# Copyright 2009-2024 Noviat. # Copyright 2009-2025 Noviat.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{ {

View File

@ -182,7 +182,9 @@ class EbicsBatchLog(models.Model):
return file_ids return file_ids
def _ebics_process(self, import_dict): def _ebics_process(self, import_dict):
to_process = self.file_ids.filtered(lambda r: r.state == "draft") to_process = self.file_ids.filtered(
lambda r: r.download_process_method and r.state == "draft"
)
for ebics_file in to_process: for ebics_file in to_process:
ebics_file.process() ebics_file.process()

View File

@ -46,7 +46,6 @@ class AccountBatchPayment(models.Model):
view = self.env.ref("account_ebics.ebics_xfer_view_form_upload") view = self.env.ref("account_ebics.ebics_xfer_view_form_upload")
act = { act = {
"name": self.env._("EBICS Upload"), "name": self.env._("EBICS Upload"),
"view_type": "form",
"view_mode": "form", "view_mode": "form",
"res_model": "ebics.xfer", "res_model": "ebics.xfer",
"view_id": view.id, "view_id": view.id,