From 9d49d4dfc4949fc5ed35196244a47a9eeacc69d8 Mon Sep 17 00:00:00 2001 From: hda Date: Thu, 2 Jul 2026 10:45:21 +0200 Subject: [PATCH 1/2] [MIG] storage_backend_ftp: Migration to 19.0 --- .pre-commit-config.yaml | 1 - requirements.txt | 1 + storage_backend_ftp/README.rst | 16 ++++++---- storage_backend_ftp/__manifest__.py | 8 ++--- .../static/description/index.html | 30 +++++++++++-------- storage_backend_ftp/tests/test_ftp.py | 8 ++--- 6 files changed, 34 insertions(+), 30 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9571e312cc..5fe2b3256f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -11,7 +11,6 @@ exclude: | ^image_tag/| ^microsoft_drive_account/| ^storage_backend/| - ^storage_backend_ftp/| ^storage_backend_s3/| ^storage_backend_sftp/| ^storage_file/| diff --git a/requirements.txt b/requirements.txt index 081b1db7b2..339c1a4389 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,5 @@ fsspec>=2024.5.0 fsspec>=2025.3.0 fsspec[s3] +pyftpdlib python_slugify diff --git a/storage_backend_ftp/README.rst b/storage_backend_ftp/README.rst index a7bd894abc..bd690195c1 100644 --- a/storage_backend_ftp/README.rst +++ b/storage_backend_ftp/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =================== Storage Backend FTP =================== @@ -13,17 +17,17 @@ Storage Backend FTP .. |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/licence-LGPL--3-blue.png +.. |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%2Fstorage-lightgray.png?logo=github - :target: https://github.com/OCA/storage/tree/18.0/storage_backend_ftp + :target: https://github.com/OCA/storage/tree/19.0/storage_backend_ftp :alt: OCA/storage .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/storage-18-0/storage-18-0-storage_backend_ftp + :target: https://translation.odoo-community.org/projects/storage-19-0/storage-19-0-storage_backend_ftp :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/storage&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/storage&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -41,7 +45,7 @@ Bug Tracker Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -79,6 +83,6 @@ 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/storage `_ project on GitHub. +This module is part of the `OCA/storage `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/storage_backend_ftp/__manifest__.py b/storage_backend_ftp/__manifest__.py index ce961b6865..1a28376b90 100644 --- a/storage_backend_ftp/__manifest__.py +++ b/storage_backend_ftp/__manifest__.py @@ -3,15 +3,13 @@ { "name": "Storage Backend FTP", "summary": "Implement FTP Storage", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Storage", "website": "https://github.com/OCA/storage", "author": " Acsone SA/NV,Odoo Community Association (OCA)", "license": "LGPL-3", - "external_dependencies": {"python": ["pyftpdlib"], - 'installable': False, -}, "depends": ["storage_backend"], "data": ["views/backend_storage_view.xml"], - 'installable': False, + "external_dependencies": {"python": ["pyftpdlib"]}, + "installable": True, } diff --git a/storage_backend_ftp/static/description/index.html b/storage_backend_ftp/static/description/index.html index 8b8bb78c85..485ff40f84 100644 --- a/storage_backend_ftp/static/description/index.html +++ b/storage_backend_ftp/static/description/index.html @@ -3,7 +3,7 @@ -Storage Backend FTP +README.rst -
-

Storage Backend FTP

+
+ + +Odoo Community Association + +
+

Storage Backend FTP

-

Beta License: LGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

+

Beta License: LGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

Add FTP as storage backend

Table of contents

@@ -385,23 +390,23 @@

Storage Backend FTP

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub 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.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Acsone SA/NV
-

Contributors

+

Contributors

-

Other credits

+

Other credits

The migration of this module from 14.0 to 18.0 was financially supported by Camptocamp.

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -422,10 +427,11 @@

Maintainers

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/storage project on GitHub.

+

This module is part of the OCA/storage project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
diff --git a/storage_backend_ftp/tests/test_ftp.py b/storage_backend_ftp/tests/test_ftp.py index 96bb962c66..b14bf38309 100644 --- a/storage_backend_ftp/tests/test_ftp.py +++ b/storage_backend_ftp/tests/test_ftp.py @@ -1,10 +1,6 @@ # Copyright 2021 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -# pylint: disable=missing-manifest-dependency -# disable warning on 'vcr' missing in manifest: this is only a dependency for -# dev/tests - import errno import ftplib import logging @@ -95,8 +91,8 @@ def test_list(self, mocked_ftplib): self.assertEqual(self.backend.list_files(), []) def test_find_files(self): - good_filepaths = ["somepath/file%d.good" % x for x in range(1, 10)] - bad_filepaths = ["somepath/file%d.bad" % x for x in range(1, 10)] + good_filepaths = [f"somepath/file{x}.good" for x in range(1, 10)] + bad_filepaths = [f"somepath/file{x}.bad" for x in range(1, 10)] mocked_filepaths = bad_filepaths + good_filepaths backend = self.backend.sudo() expected = good_filepaths[:] From e3ba9b8c68addfe531eecbe5f0e4080c1b36742b Mon Sep 17 00:00:00 2001 From: hda Date: Thu, 2 Jul 2026 11:25:13 +0200 Subject: [PATCH 2/2] DO NOT MERGE --- test-requirements.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test-requirements.txt b/test-requirements.txt index e63f876677..efa91106fb 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,3 +2,5 @@ odoo_test_helper requests_mock vcrpy-unittest s3fs>=2025.3.0 + +odoo-addon-storage_backend @ git+https://github.com/OCA/storage.git@refs/pull/636/head#subdirectory=storage_backend