Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,11 @@ addon | version | maintainers | summary
[storage_backend_ftp](storage_backend_ftp/) | 18.0.1.0.0 | | Implement FTP Storage
[storage_backend_s3](storage_backend_s3/) | 18.0.1.1.0 | | Implement amazon S3 Storage
[storage_backend_sftp](storage_backend_sftp/) | 18.0.1.0.0 | | Implement SFTP Storage
[storage_file](storage_file/) | 18.0.1.0.0 | | Storage file in storage backend
[storage_image](storage_image/) | 18.0.1.0.1 | | Store image and resized image in a storage backend
[storage_file](storage_file/) | 18.0.1.1.0 | | Storage file in storage backend
[storage_file_swap_backend_queue](storage_file_swap_backend_queue/) | 18.0.1.1.0 | <a href='https://github.com/simahawk'><img src='https://github.com/simahawk.png' width='32' height='32' style='border-radius:50%;' alt='simahawk'/></a> | Delegate storage file backend swap to queue jobs
[storage_image](storage_image/) | 18.0.1.1.0 | | Store image and resized image in a storage backend
[storage_image_product](storage_image_product/) | 18.0.1.0.2 | | Link images to products and categories
[storage_media](storage_media/) | 18.0.1.1.2 | | Give the posibility to store media data in Odoo
[storage_media](storage_media/) | 18.0.1.2.0 | | Give the posibility to store media data in Odoo
[storage_media_product](storage_media_product/) | 18.0.1.0.1 | | Link media to products and categories
[storage_thumbnail](storage_thumbnail/) | 18.0.1.0.0 | | Abstract module that add the possibility to have thumbnail

Expand Down
3 changes: 2 additions & 1 deletion setup/_metapackage/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "odoo-addons-oca-storage"
version = "18.0.20260527.0"
version = "18.0.20260610.0"
dependencies = [
"odoo-addon-fs_attachment==18.0.*",
"odoo-addon-fs_attachment_s3==18.0.*",
Expand All @@ -20,6 +20,7 @@ dependencies = [
"odoo-addon-storage_backend_s3==18.0.*",
"odoo-addon-storage_backend_sftp==18.0.*",
"odoo-addon-storage_file==18.0.*",
"odoo-addon-storage_file_swap_backend_queue==18.0.*",
"odoo-addon-storage_image==18.0.*",
"odoo-addon-storage_image_product==18.0.*",
"odoo-addon-storage_media==18.0.*",
Expand Down
3 changes: 3 additions & 0 deletions storage_backend_s3/tests/test_amazon_s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@

_logger = logging.getLogger(__name__)

# avoid bloating logs with vcr debug info, which can be very large for S3 tests
logging.getLogger("vcr.cassette").setLevel(logging.WARNING)


class AmazonS3Case(VCRMixin, CommonCase, BackendStorageTestMixin):
def _get_vcr_kwargs(self, **kwargs):
Expand Down
9 changes: 7 additions & 2 deletions storage_file/README.rst
Original file line number Diff line number Diff line change
@@ -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 File
============
Expand All @@ -7,13 +11,13 @@ Storage File
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:99da3076f6d478ec2d159ca6dcc9f7fb7cebc5b016caf82b184ed032defeee28
!! source digest: sha256:14eff9ac3e34f90b55e98e5f1d8e938390db9e5d7c2f421d370143c3a26f5e1b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |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
Expand Down Expand Up @@ -66,6 +70,7 @@ Contributors
- Sebastien Beau <sebastien.beau@akretion.com>
- Raphaël Reverdy <raphael.reverdy@akretion.com>
- Vo Hong Thien <thienvh@trobz.com>
- Simone Orsi <simone.orsi@camptocamp.com>

Other credits
-------------
Expand Down
3 changes: 2 additions & 1 deletion storage_file/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"name": "Storage File",
"summary": "Storage file in storage backend",
"version": "18.0.1.0.0",
"version": "18.0.1.1.0",
"category": "Storage",
"website": "https://github.com/OCA/storage",
"author": " Akretion, Odoo Community Association (OCA)",
Expand All @@ -22,5 +22,6 @@
"security/storage_file.xml",
"data/ir_cron.xml",
"data/storage_backend.xml",
"wizards/swap_backend.xml",
],
}
124 changes: 110 additions & 14 deletions storage_file/i18n/it.po
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"

#. module: storage_file
#. odoo-python
#: code:addons/storage_file/models/storage_file.py:0
msgid "A destination storage is required."
msgstr ""

#. module: storage_file
#: model:ir.model.fields,help:storage_file.field_storage_file__url_path
msgid "Accessible path, no base URL"
Expand All @@ -26,6 +32,14 @@ msgstr "Percorso accessibile, non URL base"
msgid "Active"
msgstr "Attivo"

#. module: storage_file
#. odoo-python
#: code:addons/storage_file/wizards/swap_backend.py:0
msgid ""
"All selected records must belong to the same source storage backend. Found: "
"%s"
msgstr ""

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_backend__backend_view_use_internal_url
msgid "Backend View Use Internal Url"
Expand All @@ -46,6 +60,11 @@ msgstr "URL base"
msgid "Base Url For Files"
msgstr "URL base per i file"

#. module: storage_file
#: model_terms:ir.ui.view,arch_db:storage_file.storage_file_swap_backend_view_form
msgid "Cancel"
msgstr ""

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__checksum
msgid "Checksum/SHA1"
Expand All @@ -64,12 +83,14 @@ msgstr "Azienda"
#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__create_uid
#: model:ir.model.fields,field_description:storage_file.field_storage_file_replace__create_uid
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__create_uid
msgid "Created by"
msgstr "Creato da"

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__create_date
#: model:ir.model.fields,field_description:storage_file.field_storage_file_replace__create_date
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__create_date
msgid "Created on"
msgstr "Creato il"

Expand All @@ -84,8 +105,8 @@ msgstr "Dati"
#: model:ir.model.fields,help:storage_file.field_storage_backend__backend_view_use_internal_url
msgid ""
"Decide if Odoo backend views should use the external URL (usually a CDN) or "
"the internal url with direct access to the storage. This could save you some"
" money if you pay by CDN traffic."
"the internal url with direct access to the storage. This could save you some "
"money if you pay by CDN traffic."
msgstr ""
"Decidere se le viste backend Odoo devono usare l'URL esterno (normalmente un "
"CDN) o l'URL interno con accesso diretto al deposito. Questo può far "
Expand All @@ -95,19 +116,33 @@ msgstr ""
#: model:ir.model.fields,help:storage_file.field_storage_backend__is_public
msgid ""
"Define if every files stored into this backend are public or not. Examples:\n"
"Private: your file/image can not be displayed is the user is not logged (not available on other website);\n"
"Public: your file/image can be displayed if nobody is logged (useful to display files on external websites)"
"Private: your file/image can not be displayed is the user is not logged (not "
"available on other website);\n"
"Public: your file/image can be displayed if nobody is logged (useful to "
"display files on external websites)"
msgstr ""
"Definisce se ogni file archiviato in questo bcackend è pubblico o no. Esempi:"
"\n"
"Definisce se ogni file archiviato in questo bcackend è pubblico o no. "
"Esempi:\n"
"Privato: il file/immagine non può essere visualizzato se l'utente non ha "
"effettuato l'accesso (non disponibile nel sito web);\n"
"Pubblico: il file/immagine può essere visualizzato se nessuno ha effettuato "
"l'accesso (utile per visualizzare i file in siti web esterni)"

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__dest_backend_id
msgid "Destination Storage"
msgstr ""

#. module: storage_file
#. odoo-python
#: code:addons/storage_file/wizards/swap_backend.py:0
msgid "Destination storage must differ from source."
msgstr ""

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__display_name
#: model:ir.model.fields,field_description:storage_file.field_storage_file_replace__display_name
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__display_name
msgid "Display Name"
msgstr "Nome visualizzato"

Expand Down Expand Up @@ -161,6 +196,16 @@ msgstr "Strategia nome file"
msgid "Filename without extension"
msgstr "Nome file senza estensione"

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__file_ids
msgid "Files"
msgstr ""

#. module: storage_file
#: model_terms:ir.ui.view,arch_db:storage_file.storage_file_swap_backend_view_form
msgid "Files to swap"
msgstr ""

#. module: storage_file
#: model:ir.model.fields,help:storage_file.field_storage_file__internal_url
msgid "HTTP URL to load the file directly from storage."
Expand All @@ -179,6 +224,7 @@ msgstr "Dimensione file umana"
#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__id
#: model:ir.model.fields,field_description:storage_file.field_storage_file_replace__id
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__id
msgid "ID"
msgstr "ID"

Expand All @@ -204,12 +250,14 @@ msgstr "È pubblico"
#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__write_uid
#: model:ir.model.fields,field_description:storage_file.field_storage_file_replace__write_uid
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__write_date
#: model:ir.model.fields,field_description:storage_file.field_storage_file_replace__write_date
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"

Expand All @@ -231,8 +279,8 @@ msgstr "Nome e ID"
#. module: storage_file
#: model:ir.model.fields,help:storage_file.field_storage_backend__url_include_directory_path
msgid ""
"Normally the directory_path it's for internal usage. If this flag is enabled"
" the path will be used to compute the public URL."
"Normally the directory_path it's for internal usage. If this flag is enabled "
"the path will be used to compute the public URL."
msgstr ""
"Normalmente il directory_path è per uso interno. Se questa opzione è "
"abilitata il percorso verrà utilizzato per calcolare l'URL pubblico."
Expand All @@ -242,6 +290,18 @@ msgstr ""
msgid "Odoo"
msgstr "Odoo"

#. module: storage_file
#. odoo-python
#: code:addons/storage_file/wizards/swap_backend.py:0
msgid "Please select a destination storage."
msgstr ""

#. module: storage_file
#. odoo-python
#: code:addons/storage_file/wizards/swap_backend.py:0
msgid "Please select at least one file."
msgstr ""

#. module: storage_file
#: model_terms:ir.ui.view,arch_db:storage_file.storage_backend_view_form
msgid "Recompute base URL for files"
Expand Down Expand Up @@ -276,7 +336,8 @@ msgstr "Fornito da"
#: model_terms:ir.ui.view,arch_db:storage_file.storage_backend_view_form
msgid ""
"Served by Odoo option will use `web.base.url` as the base URL.\n"
" <br/>Make sure this parameter is properly configured and accessible\n"
" <br/>Make sure this parameter is properly configured and "
"accessible\n"
" from everwhere you want to access the service."
msgstr ""
"Fornito dall'opzione Odoo userà `web.base.url` come URL base.\n"
Expand All @@ -294,6 +355,11 @@ msgstr "Frazione"
msgid "Slug-ified name with ID for URL"
msgstr "Nome frazionato con ID per URL"

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file_swap_backend__source_backend_id
msgid "Source Storage"
msgstr ""

#. module: storage_file
#: model:ir.model.fields,field_description:storage_file.field_storage_file__backend_id
msgid "Storage"
Expand All @@ -314,13 +380,31 @@ msgstr "File deposito"
msgid ""
"Strategy to build the name of the file to be stored.\n"
"Name and ID: will store the file with its name + its id.\n"
"SHA Hash: will use the hash of the file as filename (same method as the native attachment storage)"
"SHA Hash: will use the hash of the file as filename (same method as the "
"native attachment storage)"
msgstr ""
"Strategia per costruire il nome del file da archiviare.\n"
"Nome e ID: archivierà il file con nome + il suo ID\n"
"Hash SHA: utilizzerà l'hash del file come nome del file (stesso metodo del "
"deposito allegati nativo)"

#. module: storage_file
#: model_terms:ir.ui.view,arch_db:storage_file.storage_file_swap_backend_view_form
msgid "Swap Files"
msgstr ""

#. module: storage_file
#: model:ir.actions.act_window,name:storage_file.storage_file_swap_backend_action
#: model:ir.actions.server,name:storage_file.storage_file_swap_backend_server_action
#: model_terms:ir.ui.view,arch_db:storage_file.storage_file_swap_backend_view_form
msgid "Swap Storage Backend"
msgstr ""

#. module: storage_file
#: model:ir.model,name:storage_file.model_storage_file_swap_backend
msgid "Swap storage files between backends"
msgstr ""

#. module: storage_file
#. odoo-python
#: code:addons/storage_file/models/storage_file.py:0
Expand All @@ -331,6 +415,14 @@ msgstr ""
"La strategia del nome file è vuota per il backend %s.\n"
"Configurarlo"

#. module: storage_file
#. odoo-python
#: code:addons/storage_file/models/storage_file.py:0
msgid ""
"The filename strategy is empty for the backend %s.\n"
"Please configure it."
msgstr ""

#. module: storage_file
#: model:ir.model.constraint,message:storage_file.constraint_storage_file_path_uniq
msgid "The private path must be uniq per backend"
Expand Down Expand Up @@ -359,11 +451,15 @@ msgstr "Percorso URL"
#. module: storage_file
#: model_terms:ir.ui.view,arch_db:storage_file.storage_backend_view_form
msgid ""
"When served by external service you might have special environment configuration\n"
"When served by external service you might have special environment "
"configuration\n"
" for building final files URLs.\n"
" <br/>For performance reasons, the base URL is computed and stored.\n"
" If you change some parameters (eg: in local dev environment or special instances)\n"
" and you still want to see the images you might need to refresh this URL\n"
" <br/>For performance reasons, the base URL is computed "
"and stored.\n"
" If you change some parameters (eg: in local dev "
"environment or special instances)\n"
" and you still want to see the images you might need to "
"refresh this URL\n"
" to make sure images and/or files are loaded correctly."
msgstr ""
"Quando fornito da servizio esterno serve avere una configurazione ambiente "
Expand Down
Loading
Loading