Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
daad4ac
Add edi_storage
simahawk Nov 27, 2020
d8500ac
edi_storage: add base tests for component
simahawk Nov 27, 2020
7552e9f
edi_storage: fix messages test isolation
simahawk Nov 29, 2020
ff6a050
[UPD] Update edi_storage.pot
oca-travis Nov 30, 2020
6954962
edi_storage: adapt to edi api changes
simahawk Dec 2, 2020
11e0fbe
edi_storage: put ack handling on hold
simahawk Dec 2, 2020
f35bdbe
edi_storage: adapt to new components lookup
simahawk Feb 8, 2021
d6d73e1
[CHG] edi: Use more permissive licence: AGPL-> LGPL
etobella Mar 10, 2021
1188aff
[UPD] README.rst
OCA-git-bot Mar 15, 2021
35232a8
[FIX] edi_storage: sort key was not working properly
etobella Apr 7, 2021
9aaa4f1
[IMP] edi_storage_oca: isort, black, prettier.
fshah-initos May 5, 2021
0e2dafa
[MIG] Migrate module edi_storage_oca to v14.
fshah-initos May 5, 2021
4c3ae23
[UPD] Update edi_storage_oca.pot
oca-travis May 27, 2021
a12f08e
[UPD] README.rst
OCA-git-bot May 27, 2021
1a5793e
[IMP] edi_storage_oca: implement basis of the input process.
LoisRForgeFlow Jun 22, 2021
5f361de
[FIX] edi_oca: show the exchange file name while there is no file yet.
LoisRForgeFlow Jun 22, 2021
b2bf7e5
edi_storage: improve input process
simahawk Jun 23, 2021
f529856
[FIX] edi_storage_oca: support the use or not of filename patern + sm…
LoisRForgeFlow Jun 23, 2021
241242b
[IMP] edi_storage_oca: add specific channel and job function definitions
LoisRForgeFlow Jul 1, 2021
9a8538b
[FIX] edi_storage_oca: support regex pattern searching when fetching …
LoisRForgeFlow Jul 1, 2021
2310a9e
[FIX] edi_storage: consider if the exchange type has a specific backe…
LoisRForgeFlow Jul 2, 2021
77c01c3
[IMP] : black, isort, prettier
LoisRForgeFlow Jul 5, 2021
d75ddea
[UPD] Update edi_storage_oca.pot
oca-travis Jul 6, 2021
1af53c5
[UPD] README.rst
OCA-git-bot Jul 6, 2021
2850268
[IMP] edi_storage: add listener to move files to done/error dirs
LoisRForgeFlow Jul 5, 2021
50d37cc
[FIX] edi_storage: `list_files` expects a string.
LoisRForgeFlow Jul 9, 2021
5c87d30
[14.0][FIX] edi_storage_oca: remove duplicate backend_type_id field i…
JordiMForgeFlow Aug 4, 2021
ec16215
[FIX] edi_storage: incorrect call to output checker in receive compon…
LoisRForgeFlow Sep 6, 2021
e61e767
edi: improve backend view extension
simahawk Sep 17, 2021
18bbaae
[UPD] Update edi_storage_oca.pot
oca-travis Oct 13, 2021
7b48cb6
edi: load main vars at init
simahawk Sep 22, 2021
f6a3ea4
edi_storage: fix find files test
simahawk Oct 30, 2021
70d2d5c
[MIG][15.0] edi_storage_oca
i-vyshnevska Dec 5, 2021
b050396
[UPD] Update edi_storage_oca.pot
Mar 15, 2022
4a97092
[UPD] README.rst
OCA-git-bot Mar 15, 2022
573b590
edi: get rid of name, use identifier
simahawk Mar 10, 2022
2d5ead5
edi_storage: fail gracefully w/o error report
simahawk Mar 10, 2022
05c4825
[IMP] edi_storage_oca: Update development status
JasminSForgeFlow Apr 12, 2022
df06cdd
[UPD] README.rst
OCA-git-bot Apr 12, 2022
8b4b78a
edi_storage_oca: improve error handling
jcoux May 17, 2022
c3cea9f
edi_storage: path configurable by type and param
simahawk May 6, 2022
242ffe0
[UPD] README.rst
OCA-git-bot Sep 3, 2023
b6bb058
[MIG] edi_storage_oca: Migration to 16.0
Sep 29, 2023
fc845e2
[UPD] Update edi_storage_oca.pot
Jan 31, 2024
fd6cbb6
edi_storage_oca: replace use of 'fs_storage' deprecated functions
sebalix Feb 1, 2024
9ed6cd9
[IMP] edi_storage_oca: Add and use the storage_id field on edi.exchan…
thienvh332 Feb 27, 2024
0f9c5af
[IMP] edi_storage_oca: Fix permission
tuantrantg Mar 26, 2024
7ce53ed
edi_storage: handle missing trailing slash
simahawk Apr 10, 2024
a613911
Added translation using Weblate (Italian)
mymage May 13, 2024
63a9a39
[IMP] edi_storage_oca: Add script to migrate to v16
Jul 5, 2024
e591728
[OU] edi_storage_oca: Finish migration scripts
etobella Dec 19, 2024
c6d584e
[BOT] post-merge updates
OCA-git-bot Jan 9, 2025
d5c50c9
[IMP] edi_storage_oca: pre-commit auto fixes
Ricardoalso Jan 16, 2025
ff4dca0
[MIG] edi_storage_oca: Migration to 17.0
luisDIXMIT Oct 14, 2024
c4d30fd
[IMP] edi_storage_oca: This code is no longer necessary
etobella Dec 11, 2024
1dfdd92
[FIX] edi_storage_oca: Return full path
etobella Jan 3, 2025
cb5f87b
[MIG] edi_storage_oca: Migration to 18.0
Ricardoalso Jan 16, 2025
6ea6bd2
[MIG] edi_storage_oca: Adapt to changed of edi_core_oca
etobella Oct 1, 2025
a657168
[ADD] edi_storage_queue_oca
etobella Oct 1, 2025
05296f4
[IMP] edi_storage_oca: Allow EDI user to access storage model
etobella Nov 14, 2025
ef0dc29
[UPD] Update edi_storage_oca.pot
Dec 1, 2025
90281f2
[BOT] post-merge updates
OCA-git-bot Dec 1, 2025
4766c6f
[FIX] edi_storage_oca: Remove legacy storage component code
HviorForgeFlow Dec 6, 2025
f95abe7
[FIX] edi_storage_oca: fix migration script
JordiMForgeFlow Dec 9, 2025
b303c69
[BOT] post-merge updates
OCA-git-bot Dec 9, 2025
7741490
[BOT] post-merge updates
OCA-git-bot Dec 9, 2025
a96a886
[IMP] edi_storage_oca: pre-commit auto fixes
sergijPf Mar 26, 2026
0f1b71f
[MIG] edi_storage_oca: Migration to 19.0
sergijPf Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions edi_storage_oca/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

===========================
EDI Storage backend support
===========================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:ae52c0238c8bab278e4e2d6a48d86d4222672b893df1f171be046f3b7a3c58ae
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fedi--framework-lightgray.png?logo=github
:target: https://github.com/OCA/edi-framework/tree/19.0/edi_storage_oca
:alt: OCA/edi-framework
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/edi-framework-19-0/edi-framework-19-0-edi_storage_oca
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/edi-framework&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Allow exchange files using storage backends from OCA/storage.

This module adds a storage backend relation on the EDI backend. There
you can configure the backend to be used (most often and SFTP) and the
paths where to read or put files.

Often the convention when exchanging files via SFTP is to have one input
forder (to receive files) and an output folder (to send files).

Inside this folder you have this hierarchy:

::

input/output folder
|- pending
|- done
|- error

- pending folder contains files that have been just sent
- done folder contains files that have been processes successfully
- error folder contains files with errors and cannot be processed

The storage handlers take care of reading files and putting files
in/from the right place and update exchange records data accordingly.

**Table of contents**

.. contents::
:local:

Usage
=====

Go to "EDI -> EDI backend" then configure your backend to use a storage
backend.

Known issues / Roadmap
======================

- clean deprecated methods in the storage

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/edi-framework/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/edi-framework/issues/new?body=module:%20edi_storage_oca%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* ACSONE

Contributors
------------

- Simone Orsi <[email protected]>
- Foram Shah <[email protected]>
- Lois Rilo <[email protected]>
- Duong (Tran Quoc) <[email protected]>
- `Dixmit <https://www.dixmit.com>`__:

- Enric Tobella

Other credits
-------------

The migration of this module from 15.0 to 16.0 was financially supported
by Camptocamp.

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/edi-framework <https://github.com/OCA/edi-framework/tree/19.0/edi_storage_oca>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions edi_storage_oca/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
21 changes: 21 additions & 0 deletions edi_storage_oca/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2020 ACSONE
# @author: Simone Orsi <[email protected]>
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

{
"name": "EDI Storage backend support",
"summary": """
Base module to allow exchanging files via storage backend (eg: SFTP).
""",
"version": "19.0.1.0.0",
"development_status": "Beta",
"license": "LGPL-3",
"website": "https://github.com/OCA/edi-framework",
"author": "ACSONE,Odoo Community Association (OCA)",
"depends": ["edi_core_oca", "fs_storage"],
"data": [
"data/cron.xml",
"security/ir_model_access.xml",
"views/edi_backend_views.xml",
],
}
15 changes: 15 additions & 0 deletions edi_storage_oca/data/cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="cron_check_storage_pending_input" model="ir.cron" forcecreate="True">
<field name="name">EDI backend storage check pending input</field>
<field name="active" eval="True" />
<field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field>
<field name="interval_type">hours</field>
<field name="model_id" ref="edi_core_oca.model_edi_backend" />
<field name="state">code</field>
<field
name="code"
>model.search([('storage_id', '!=', False)])._storage_cron_check_pending_input()</field>
</record>
</odoo>
120 changes: 120 additions & 0 deletions edi_storage_oca/i18n/edi_storage_oca.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * edi_storage_oca
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: edi_storage_oca
#: model:ir.model,name:edi_storage_oca.model_edi_backend
msgid "EDI Backend"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model,name:edi_storage_oca.model_edi_exchange_type
msgid "EDI Exchange Type"
msgstr ""

#. module: edi_storage_oca
#: model:ir.actions.server,name:edi_storage_oca.cron_check_storage_pending_input_ir_actions_server
msgid "EDI backend storage check pending input"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model,name:edi_storage_oca.model_edi_exchange_record
msgid "EDI exchange Record"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_exchange_type__exchange_filename_pattern
msgid "Exchange Filename Pattern"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_backend__storage_id
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_exchange_record__storage_id
msgid "FS Storage"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,help:edi_storage_oca.field_edi_exchange_type__exchange_filename_pattern
msgid ""
"For output exchange types this should be a formatting string with the following variables available (to be used between brackets, `{}`): `exchange_record`, `record_name`, `type` and `dt`. For instance, a valid string would be {record_name}-{type.code}-{dt}\n"
"For input exchange types related to storage backends it should be a regex expression to filter the files to be fetched from the pending directory in the related storage. E.g: `.*my-type-[0-9]*.\\.csv`"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_backend__input_dir_done
msgid "Input done directory"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_backend__input_dir_error
msgid "Input error directory"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_backend__input_dir_pending
msgid "Input pending directory"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_backend__output_dir_done
msgid "Output done directory"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_backend__output_dir_error
msgid "Output error directory"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,field_description:edi_storage_oca.field_edi_backend__output_dir_pending
msgid "Output pending directory"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,help:edi_storage_oca.field_edi_backend__input_dir_done
#: model:ir.model.fields,help:edi_storage_oca.field_edi_backend__output_dir_done
msgid "Path to folder for doneful operations"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,help:edi_storage_oca.field_edi_backend__input_dir_error
#: model:ir.model.fields,help:edi_storage_oca.field_edi_backend__output_dir_error
msgid "Path to folder for error operations"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,help:edi_storage_oca.field_edi_backend__input_dir_pending
#: model:ir.model.fields,help:edi_storage_oca.field_edi_backend__output_dir_pending
msgid "Path to folder for pending operations"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,help:edi_storage_oca.field_edi_exchange_record__storage_id
msgid "Record created from a file found in this FS storage"
msgstr ""

#. module: edi_storage_oca
#: model_terms:ir.ui.view,arch_db:edi_storage_oca.edi_backend_view_form
msgid "Storage"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model,name:edi_storage_oca.model_edi_oca_storage_handler
msgid "Storage Handler for EDI"
msgstr ""

#. module: edi_storage_oca
#: model:ir.model.fields,help:edi_storage_oca.field_edi_backend__storage_id
msgid "Storage for in-out files"
msgstr ""
Loading
Loading