Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5bbfe12
Added translation using Weblate (German)
didierdonze Oct 28, 2025
15601b4
[DOC] fs_attachment: add a note about default location
sbidoul Oct 31, 2025
07bc034
Merge PR #530 into 18.0
OCA-git-bot Nov 3, 2025
e4271b9
[BOT] post-merge updates
OCA-git-bot Nov 3, 2025
c56839b
storage_media_product: restore lost changes from v16 mig
simahawk Nov 25, 2025
ef82a7b
Merge PR #539 into 18.0
OCA-git-bot Nov 25, 2025
8f698d9
[UPD] Update storage_media_product.pot
Nov 25, 2025
497eeab
[BOT] post-merge updates
OCA-git-bot Nov 25, 2025
08cfe83
Update translation files
weblate Nov 25, 2025
42f8a0d
storage_file: storage.file.replace add hook for file values
simahawk Nov 25, 2025
6591ae2
storage_media: fix missing file_type on replace
simahawk Nov 25, 2025
d22a582
storage_image: fix missing file_type on replace
simahawk Nov 25, 2025
5c06cc5
storage_image: add script to fix missing file_type
simahawk Nov 26, 2025
3cba9a2
storage_media: add script to fix missing file_type
simahawk Nov 26, 2025
7cce557
Merge PR #540 into 18.0
OCA-git-bot Nov 26, 2025
f812564
[BOT] post-merge updates
OCA-git-bot Nov 26, 2025
4db3181
Translated using Weblate (Italian)
mymage Nov 28, 2025
caa344c
[IMP] microsoft_drive_account, fs_storage_ms_drive: non-interactive user
lmignon Oct 20, 2025
98a2721
[FIX] fs_folder: Uses current user into cleanup method
lmignon Oct 24, 2025
aee654b
Merge PR #528 into 18.0
OCA-git-bot Dec 10, 2025
d985199
[UPD] Update microsoft_drive_account.pot
Dec 10, 2025
e8be2eb
[BOT] post-merge updates
OCA-git-bot Dec 10, 2025
4f72a22
Update translation files
weblate Dec 10, 2025
4e18dba
Translated using Weblate (Italian)
mymage Dec 11, 2025
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
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,24 @@ addon | version | maintainers | summary
[fs_attachment](fs_attachment/) | 18.0.2.2.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Store attachments on external object store
[fs_attachment_s3](fs_attachment_s3/) | 18.0.1.2.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Store attachments into S3 complient filesystem
[fs_file](fs_file/) | 18.0.1.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Field to store files into filesystem storages
[fs_folder](fs_folder/) | 18.0.1.0.1 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | A module to link to Odoo records and manage from record forms forlders from external file systems
[fs_folder](fs_folder/) | 18.0.2.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | A module to link to Odoo records and manage from record forms forlders from external file systems
[fs_folder_demo](fs_folder_demo/) | 18.0.1.0.0 | | Demo for fs_folder addon
[fs_folder_ms_drive](fs_folder_ms_drive/) | 18.0.1.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Display and manage your files from Microsoft drives from within Odoo
[fs_folder_ms_drive](fs_folder_ms_drive/) | 18.0.2.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Display and manage your files from Microsoft drives from within Odoo
[fs_folder_webdav](fs_folder_webdav/) | 18.0.1.0.0 | <a href='https://github.com/jguenat'><img src='https://github.com/jguenat.png' width='32' height='32' style='border-radius:50%;' alt='jguenat'/></a> | UI improvement when managing WebDAV folder
[fs_image](fs_image/) | 18.0.1.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Field to store images into filesystem storages
[fs_storage](fs_storage/) | 18.0.2.1.0 | | Implement the concept of Storage with amazon S3, sftp...
[fs_storage_ms_drive](fs_storage_ms_drive/) | 18.0.1.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Add the microsoft drives (OneDrive, Sharepoint) as a storage backend
[fs_storage_ms_drive](fs_storage_ms_drive/) | 18.0.2.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Add the microsoft drives (OneDrive, Sharepoint) as a storage backend
[image_tag](image_tag/) | 18.0.1.0.0 | | Image tag model
[microsoft_drive_account](microsoft_drive_account/) | 18.0.1.0.1 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Link user with Microsoft
[microsoft_drive_account](microsoft_drive_account/) | 18.0.2.0.0 | <a href='https://github.com/lmignon'><img src='https://github.com/lmignon.png' width='32' height='32' style='border-radius:50%;' alt='lmignon'/></a> | Link user with Microsoft
[storage_backend](storage_backend/) | 18.0.1.0.0 | | Implement the concept of Storage with amazon S3, sftp...
[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.0 | | Store image and resized image in a storage backend
[storage_image](storage_image/) | 18.0.1.0.1 | | Store image and resized image in a storage backend
[storage_image_product](storage_image_product/) | 18.0.1.0.1 | | Link images to products and categories
[storage_media](storage_media/) | 18.0.1.1.0 | | Give the posibility to store media data in Odoo
[storage_media_product](storage_media_product/) | 18.0.1.0.0 | | Link media to products and categories
[storage_media](storage_media/) | 18.0.1.1.1 | | 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

[//]: # (end addons)
Expand Down
13 changes: 12 additions & 1 deletion fs_attachment/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Base Attachment Object Store
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:91e056fd2f97577445c98f8a29b6172922bd12ca6d3723cda39a40848f97ef5a
!! source digest: sha256:50c6082aeb8a70f8037fe7af4499b73d24c5e70f2fb76df63606559a6700108d
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
Expand Down Expand Up @@ -331,6 +331,17 @@ Tips & Tricks
storage to the production environment to make it read only. (The use
of server environment files is a good way to do so).

- When enabling ``Use As Default For Attachment`` you must be aware that
this option applies from the point when the ``fs_attachment`` has been
loaded by Odoo. This means that some attachments (such as icons)
created during the update of modules that are loaded before
``fs_attachment`` will still be stored in the location defined in the
``ir_attachment.location`` system parameter (which is ``file`` by
default, meaning the regular on-disk ``filestore`` directory).

A simple way to work around this issue is to set the
``ir_attachment.location`` System Parameter record to ``db``.

Changelog
=========

Expand Down
310 changes: 310 additions & 0 deletions fs_attachment/i18n/de.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,310 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fs_attachment
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"

#. module: fs_attachment
#: model:ir.model,name:fs_attachment.model_ir_attachment
#: model_terms:ir.ui.view,arch_db:fs_attachment.fs_storage_form_view
msgid "Attachment"
msgstr ""

#. module: fs_attachment
#: model_terms:ir.ui.view,arch_db:fs_attachment.fs_storage_form_view
msgid "Attachment's Url"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__autovacuum_gc
msgid "Autovacuum Garbage Collection"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__base_url
msgid "Base Url"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__base_url_for_files
msgid "Base Url For Files"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__create_uid
msgid "Created by"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__create_date
msgid "Created on"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__display_name
msgid "Display Name"
msgstr ""

#. module: fs_attachment
#: model:ir.model,name:fs_attachment.model_fs_storage
msgid "FS Storage"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_ir_attachment__fs_filename
#: model:ir.model.fields,field_description:fs_attachment.field_product_document__fs_filename
msgid "File Name into the filesystem storage"
msgstr ""

#. module: fs_attachment
#: model:ir.model,name:fs_attachment.model_ir_binary
msgid "File streaming helper model for controllers"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_ir_attachment__fs_storage_id
#: model:ir.model.fields,field_description:fs_attachment.field_product_document__fs_storage_id
msgid "Filesystem Storage"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_ir_attachment__fs_storage_code
#: model:ir.model.fields,field_description:fs_attachment.field_product_document__fs_storage_code
msgid "Filesystem Storage Code"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_ir_attachment__fs_url
#: model:ir.model.fields,field_description:fs_attachment.field_product_document__fs_url
msgid "Filesystem URL"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_ir_attachment__fs_url_path
#: model:ir.model.fields,field_description:fs_attachment.field_product_document__fs_url_path
msgid "Filesystem URL Path"
msgstr ""

#. module: fs_attachment
#: model:ir.model,name:fs_attachment.model_fs_file_gc
msgid "Filesystem storage file garbage collector"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__force_db_for_default_attachment_rules
msgid "Force Db For Default Attachment Rules"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__id
msgid "ID"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_fs_storage__use_x_sendfile_to_serve_internal_url
msgid ""
"If checked and odoo is behind a proxy that supports x-sendfile, the content "
"served by the attachment's internal URL will be servedby the proxy using the"
" fs_url if defined. If not, the file will be served by odoo that will stream"
" the content read from the filesystem storage. This option is useful to "
"avoid to serve files from odoo and therefore to avoid to load the odoo "
"process. "
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_fs_storage__autovacuum_gc
msgid ""
"If checked, the autovacuum of the garbage collection will be automatically "
"executed when the storage is used to store attachments. Sometime, the "
"autovacuum is to avoid when files in the storage are referenced by other "
"systems (like a website). In such case, records in the fs.file.gc table must"
" be manually processed."
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_fs_storage__optimizes_directory_path
msgid ""
"If checked, the directory path will be optimized to avoid too much files "
"into the same directory. This options is used when the storage is used to "
"store attachments. Depending on the storage, this option can be ignored. "
"It's useful for storage based on real file. This way, files with similar "
"properties will be stored in the same directory, avoiding overcrowding in "
"the root directory and optimizing access times."
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_fs_storage__use_filename_obfuscation
msgid ""
"If checked, the filename will be obfuscated. This option is useful to avoid "
"to expose sensitive information trough the URL or in the remote storage. The"
" obfuscation is done using a hash of the filename. The original filename is "
"stored in the attachment metadata. The obfusation is to avoid if the storage"
" is used to store files that are referenced by other systems (like a "
"website) where the filename is important for SEO."
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_fs_storage__use_as_default_for_attachments
msgid "If checked, this storage will be used to store all the attachments "
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_ir_attachment__internal_url
#: model:ir.model.fields,field_description:fs_attachment.field_product_document__internal_url
msgid "Internal URL"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__is_directory_path_in_url
msgid "Is Directory Path In Url"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__write_uid
msgid "Last Updated by"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__write_date
msgid "Last Updated on"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_fs_storage__is_directory_path_in_url
msgid ""
"Normally the directory_path is for internal usage. If this flag is enabled "
"the path will be used to compute the public URL."
msgstr ""

#. module: fs_attachment
#. odoo-python
#: code:addons/fs_attachment/models/ir_attachment.py:0
msgid "Only administrators can execute this action."
msgstr ""

#. module: fs_attachment
#. odoo-python
#: code:addons/fs_attachment/models/fs_storage.py:0
msgid "Only one storage can be used as default for attachments"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__optimizes_directory_path
msgid "Optimizes Directory Path"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__fs_storage_code
msgid "Storage Code"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_file_gc__store_fname
msgid "Stored Filename"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_ir_attachment__fs_storage_code
#: model:ir.model.fields,help:fs_attachment.field_product_document__fs_storage_code
msgid ""
"Technical code used to identify the storage backend into the code.This code "
"must be unique. This code is used for example to define the storage backend "
"to store the attachments via the configuration parameter "
"'ir_attachment.storage.force.database' when the module 'fs_attachment' is "
"installed."
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_ir_attachment__fs_url
#: model:ir.model.fields,help:fs_attachment.field_product_document__fs_url
msgid "The URL to access the file from the filesystem storage."
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_ir_attachment__internal_url
#: model:ir.model.fields,help:fs_attachment.field_product_document__internal_url
msgid "The URL to access the file from the server."
msgstr ""

#. module: fs_attachment
#. odoo-python
#: code:addons/fs_attachment/models/fs_storage.py:0
msgid ""
"The force_db_for_default_attachment_rules can only be set if the storage is "
"used as default for attachments."
msgstr ""

#. module: fs_attachment
#. odoo-python
#: code:addons/fs_attachment/models/fs_storage.py:0
msgid "The force_db_for_default_attachment_rules is not a valid python dict."
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_ir_attachment__fs_filename
#: model:ir.model.fields,help:fs_attachment.field_product_document__fs_filename
msgid ""
"The name of the file in the filesystem storage.To preserve the mimetype and "
"the meaning of the filenamethe filename is computed from the name and the "
"extension"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_ir_attachment__fs_url_path
#: model:ir.model.fields,help:fs_attachment.field_product_document__fs_url_path
msgid "The path to access the file from the filesystem storage."
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_ir_attachment__fs_storage_id
#: model:ir.model.fields,help:fs_attachment.field_product_document__fs_storage_id
msgid "The storage where the file is stored."
msgstr ""

#. module: fs_attachment
#: model:ir.model.constraint,message:fs_attachment.constraint_fs_file_gc_store_fname_uniq
msgid "The stored filename must be unique!"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__use_as_default_for_attachments
msgid "Use As Default For Attachments"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__use_filename_obfuscation
msgid "Use Filename Obfuscation"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,field_description:fs_attachment.field_fs_storage__use_x_sendfile_to_serve_internal_url
msgid "Use X-Sendfile To Serve Internal Url"
msgstr ""

#. module: fs_attachment
#: model:ir.model.fields,help:fs_attachment.field_fs_storage__force_db_for_default_attachment_rules
msgid ""
"When storing attachments in an external storage, storage may be slow.If the storage is used to store odoo attachments by default, this could lead to a bad user experience since small images (128, 256) are used in Odoo in list / kanban views. We want them to be fast to read.This field allows to force the store of some attachments in the odoo database. The value is a dict Where the key is the beginning of the mimetype to configure and the value is the limit in size below which attachments are kept in DB. 0 means no limit.\n"
"Default configuration means:\n"
"* images mimetypes (image/png, image/jpeg, ...) below 50KB are stored in database\n"
"* application/javascript are stored in database whatever their size \n"
"* text/css are stored in database whatever their size"
msgstr ""

#. module: fs_attachment
#. odoo-python
#: code:addons/fs_attachment/models/ir_attachment.py:0
msgid ""
"You can't write on multiple attachments with different mimetypes at the same"
" time."
msgstr ""
11 changes: 11 additions & 0 deletions fs_attachment/readme/USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,3 +238,14 @@ with attachment.open("w", new_version=False) as f:
the production storage. Be careful to adapt the configuration of your
storage to the production environment to make it read only. (The use
of server environment files is a good way to do so).

- When enabling `Use As Default For Attachment` you must be aware that this
option applies from the point when the `fs_attachment` has been loaded by
Odoo. This means that some attachments (such as icons) created during the
update of modules that are loaded before `fs_attachment` will still be stored
in the location defined in the `ir_attachment.location` system parameter
(which is `file` by default, meaning the regular on-disk `filestore`
directory).

A simple way to work around this issue is to set the `ir_attachment.location`
System Parameter record to `db`.
Loading