From a87f325ffc34ac11a64ab77760290c9583f2e33c Mon Sep 17 00:00:00 2001 From: Christopher Rogos Date: Tue, 21 Apr 2026 12:45:29 +0000 Subject: [PATCH 01/26] [IMP] fs_attachment: improve attachment storage handling of files without body (size=0) --- fs_attachment/models/ir_attachment.py | 19 ++++++++++++++++--- fs_attachment/tests/test_fs_attachment.py | 6 ++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/fs_attachment/models/ir_attachment.py b/fs_attachment/models/ir_attachment.py index 6bafc7dedb..bf8cdee3ae 100644 --- a/fs_attachment/models/ir_attachment.py +++ b/fs_attachment/models/ir_attachment.py @@ -253,6 +253,18 @@ def _storage(self): storage = super()._storage() return storage + @api.depends("store_fname", "db_datas") + def _compute_raw(self): + """Always expose raw payload as bytes. + + Some callers (e.g. account EDI helpers) slice the value returned by + ``raw`` and crash when it is ``False`` for 0-byte attachments. + """ + res = super()._compute_raw() + false_attachments = self.filtered(lambda att: not att.raw) + false_attachments.raw = b"" + return res + @api.model_create_multi def create(self, vals_list): """ @@ -697,9 +709,10 @@ def _move_attachment_to_store(self): self.ensure_one() _logger.info("inspecting attachment %s (%d)", self.name, self.id) fname = self.store_fname - storage = fname.partition("://")[0] - if self._is_storage_disabled(storage): - fname = False + if fname: + storage = fname.partition("://")[0] + if self._is_storage_disabled(storage): + fname = False if fname: # migrating from filesystem filestore # or from the old 'store_fname' without the bucket name diff --git a/fs_attachment/tests/test_fs_attachment.py b/fs_attachment/tests/test_fs_attachment.py index 22c186ecac..f52c3ec900 100644 --- a/fs_attachment/tests/test_fs_attachment.py +++ b/fs_attachment/tests/test_fs_attachment.py @@ -75,6 +75,12 @@ def test_create_attachment_with_meaningful_name(self): with attachment.open("rb") as f: self.assertEqual(f.read(), new_content) + def test_create_attachment_with_no_payload_has_bytes_raw(self): + attachment = self.ir_attachment_model.create({"name": "empty.txt"}) + + self.assertEqual(attachment.raw, b"") + self.assertEqual(attachment.file_size, 0) + def test_open_attachment_in_db(self): self.env["ir.config_parameter"].sudo().set_param("ir_attachment.location", "db") content = b"This is a test attachment in db" From 7de5622622f6bb2d6c505b95f8e4dcc06186cba2 Mon Sep 17 00:00:00 2001 From: Nithwith Date: Wed, 28 Jan 2026 10:20:44 +0000 Subject: [PATCH 02/26] [IMP] microsoft_drive_account : improve Readme / Configuration --- microsoft_drive_account/readme/CONFIGURE.md | 64 ++++++++++++++---- .../static/description/azure_storage_app.png | Bin 0 -> 120669 bytes .../description/azure_storage_permissions.png | Bin 0 -> 142131 bytes .../description/azure_storage_secret.png | Bin 0 -> 101200 bytes .../description/azure_storage_tenant_url.png | Bin 0 -> 47535 bytes .../static/description/azure_storage_test.png | Bin 0 -> 43712 bytes 6 files changed, 52 insertions(+), 12 deletions(-) create mode 100644 microsoft_drive_account/static/description/azure_storage_app.png create mode 100644 microsoft_drive_account/static/description/azure_storage_permissions.png create mode 100644 microsoft_drive_account/static/description/azure_storage_secret.png create mode 100644 microsoft_drive_account/static/description/azure_storage_tenant_url.png create mode 100644 microsoft_drive_account/static/description/azure_storage_test.png diff --git a/microsoft_drive_account/readme/CONFIGURE.md b/microsoft_drive_account/readme/CONFIGURE.md index 436b18bc16..ce5bb59cc6 100644 --- a/microsoft_drive_account/readme/CONFIGURE.md +++ b/microsoft_drive_account/readme/CONFIGURE.md @@ -1,16 +1,56 @@ -In order to use the Microsoft Drive Account module, you need to set following configuration parameters in your Odoo instance: +In order to use the Microsoft Drive Account module, you need to follow this process for link Odoo and Microsoft: -* microsoft_account.auth_endpoint: The URL of the Microsoft authentication endpoint. This is usually https://login.microsoftonline.com/{your endpoint id}/oauth2/v2.0/authorize. -* microsoft_account.token_endpoint: The URL of the Microsoft token endpoint. This is usually https://login.microsoftonline.com/{your endpoint id}/oauth2/v2.0/token. -* microsoft_drive_client_id: The client ID of your Microsoft application. This is a unique identifier for your application that you can obtain from the Azure portal. -* microsoft_drive_client_secret: The client secret of your Microsoft application. This is a secret key that you can obtain from the Azure portal. It is used to authenticate your application with the Microsoft Graph API. +### PART 1 : Create an Azure Application +To allow Odoo to access Microsoft OneDrive or SharePoint through the Microsoft Graph API, you must create an application in Azure Active Directory. -Optionally, you can set the following parameters: +Step 1 – Open the Azure portal and go to Azure Active Directory, then "App registrations", and click “New registration”. + +Step 2 – Register the application. Set a name “Odoo storage integration”. +Select the third option "Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)" +Add a Redirect URI of type "Web". {URL of your Odoo instance}/microsoft_account/authentication. +Once the application is created, note the Application (client) ID and the Directory (tenant) ID. + +![Azure App dashboard](../static/description/azure_storage_app.png) + +Step 3 – Generate a client secret. +Go to Certificates & secrets, create a new client secret (Description : Odoo storage secret / Expires : 24month), and copy its value. +You will not be able to see it again. + +![Secret of Azure App](../static/description/azure_storage_secret.png) + +Step 4 – Configure API permissions. +Open API permissions, add Microsoft Graph "Application permissions", and include Files.ReadWrite.All, and Sites.ReadWrite.All. +Add also "Delegated permission" for include offline_access, openid. + +IMPORTANT : Grant admin consent so the application can use these permissions. + + ![Permissions in Azure App](../static/description/azure_storage_permissions.png) + +### PART 2 : Set Odoo System Parameters + +You need your tenant_url, you can find it in your Azure portal, open Home > Dashboard. Look at the URL, it's usually ends with onmicrosoft.com. + + ![Tenant URL](../static/description/azure_storage_tenant_url.png) + +In Odoo, open Settings > Technical > System Parameters. + +Required parameters: +* microsoft_account.auth_endpoint : This is the Microsoft OAuth2 authorization URL. It usually has the form: https://login.microsoftonline.com/{tenant_url}/oauth2/v2.0/authorize +* microsoft_account.token_endpoint : This is the token endpoint URL, usually: https://login.microsoftonline.com/{tenant_url}/oauth2/v2.0/token +* microsoft_drive_client_id : The Client ID of the Azure application. +* microsoft_drive_client_secret : The Client Secret value generated in Azure. + +Optional parameter : +* microsoft_drive_client_scope : Defines the permissions requested by Odoo. If not defined, Odoo uses the default scopes: offline_access, openid, Files.ReadWrite.All, Sites.ReadWrite.All. + +### PART 3 : Test the Configuration + +Step 1 – In Odoo, go to your odoo profile and select "Account Security",then click on the “grey cloud icon". + +Step 2 – You will be redirected to the Microsoft login page. Sign in and accept the requested permissions. You will then be redirected back to Odoo. + +Step 3 – After authorization, Odoo should display a "blue cloud icon". The connection is now established. + + ![Test connexion from odoo profile](../static/description/azure_storage_test.png) -* microsoft_drive_client_scope: The scope of the Microsoft application. By default the following scopes are used - - offline_access - - openid - - Files.ReadWrite.All - - Sites.ReadWrite.All - diff --git a/microsoft_drive_account/static/description/azure_storage_app.png b/microsoft_drive_account/static/description/azure_storage_app.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0b285ef48a46ce55daf5379c98dbd1fc4c1577 GIT binary patch literal 120669 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 ZuHX0r4^y* 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 literal 0 HcmV?d00001 diff --git a/microsoft_drive_account/static/description/azure_storage_permissions.png b/microsoft_drive_account/static/description/azure_storage_permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0d73d6fb98d88e2e871887814689feee28bbe6 GIT binary patch literal 142131 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 literal 0 HcmV?d00001 diff --git a/microsoft_drive_account/static/description/azure_storage_secret.png b/microsoft_drive_account/static/description/azure_storage_secret.png new file mode 100644 index 0000000000000000000000000000000000000000..385c133d05b31e4c232e1f8247664dbacf8244fe GIT binary patch literal 101200 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 P=U5pDMe$0}uYvyytzFoM literal 0 HcmV?d00001 diff --git a/microsoft_drive_account/static/description/azure_storage_tenant_url.png b/microsoft_drive_account/static/description/azure_storage_tenant_url.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee0df0a1c7d4826711183bd21c313851c40605b GIT binary patch literal 47535 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�m!hB|A|ld6K%}b( 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 Date: Tue, 26 May 2026 14:39:44 +0200 Subject: [PATCH 03/26] [FIX] microsoft_drive_account: Fix title levels into configuration --- microsoft_drive_account/README.rst | 122 ++++++++++----- microsoft_drive_account/readme/CONFIGURE.md | 6 +- .../static/description/index.html | 139 +++++++++++------- 3 files changed, 179 insertions(+), 88 deletions(-) diff --git a/microsoft_drive_account/README.rst b/microsoft_drive_account/README.rst index 0ef07caa93..4e288b7fdf 100644 --- a/microsoft_drive_account/README.rst +++ b/microsoft_drive_account/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - =========================== Microsoft account for Drive =========================== @@ -17,7 +13,7 @@ Microsoft account for Drive .. |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 +.. |badge2| image:: https://img.shields.io/badge/licence-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 @@ -44,34 +40,94 @@ actions on Drive as the logged-in user. Configuration ============= -In order to use the Microsoft Drive Account module, you need to set -following configuration parameters in your Odoo instance: - -- microsoft_account.auth_endpoint: The URL of the Microsoft - authentication endpoint. This is usually - `https://login.microsoftonline.com/{your `__ - endpoint id}/oauth2/v2.0/authorize. -- microsoft_account.token_endpoint: The URL of the Microsoft token - endpoint. This is usually - `https://login.microsoftonline.com/{your `__ - endpoint id}/oauth2/v2.0/token. -- microsoft_drive_client_id: The client ID of your Microsoft - application. This is a unique identifier for your application that you - can obtain from the Azure portal. -- microsoft_drive_client_secret: The client secret of your Microsoft - application. This is a secret key that you can obtain from the Azure - portal. It is used to authenticate your application with the Microsoft - Graph API. - -Optionally, you can set the following parameters: - -- microsoft_drive_client_scope: The scope of the Microsoft application. - By default the following scopes are used - - - offline_access - - openid - - Files.ReadWrite.All - - Sites.ReadWrite.All +In order to use the Microsoft Drive Account module, you need to follow +this process for link Odoo and Microsoft: + +PART 1 : Create an Azure Application +------------------------------------ + +To allow Odoo to access Microsoft OneDrive or SharePoint through the +Microsoft Graph API, you must create an application in Azure Active +Directory. + +Step 1 – Open the Azure portal and go to Azure Active Directory, then +"App registrations", and click “New registration”. + +Step 2 – Register the application. Set a name “Odoo storage +integration”. Select the third option "Accounts in any organizational +directory (Any Microsoft Entra ID tenant - Multitenant) and personal +Microsoft accounts (e.g. Skype, Xbox)" Add a Redirect URI of type "Web". +{URL of your Odoo instance}/microsoft_account/authentication. Once the +application is created, note the Application (client) ID and the +Directory (tenant) ID. + +|Azure App dashboard| + +Step 3 – Generate a client secret. Go to Certificates & secrets, create +a new client secret (Description : Odoo storage secret / Expires : +24month), and copy its value. You will not be able to see it again. + +|Secret of Azure App| + +Step 4 – Configure API permissions. Open API permissions, add Microsoft +Graph "Application permissions", and include Files.ReadWrite.All, and +Sites.ReadWrite.All. Add also "Delegated permission" for include +offline_access, openid. + +IMPORTANT : Grant admin consent so the application can use these +permissions. + +|Permissions in Azure App| + +PART 2 : Set Odoo System Parameters +----------------------------------- + +You need your tenant_url, you can find it in your Azure portal, open +Home > Dashboard. Look at the URL, it's usually ends with +onmicrosoft.com. + +|Tenant URL| + +In Odoo, open Settings > Technical > System Parameters. + +Required parameters: + +- microsoft_account.auth_endpoint : This is the Microsoft OAuth2 + authorization URL. It usually has the form: + `https://login.microsoftonline.com/{tenant_url}/oauth2/v2.0/authorize `__ +- microsoft_account.token_endpoint : This is the token endpoint URL, + usually: + `https://login.microsoftonline.com/{tenant_url}/oauth2/v2.0/token `__ +- microsoft_drive_client_id : The Client ID of the Azure application. +- microsoft_drive_client_secret : The Client Secret value generated in + Azure. + +Optional parameter : + +- microsoft_drive_client_scope : Defines the permissions requested by + Odoo. If not defined, Odoo uses the default scopes: offline_access, + openid, Files.ReadWrite.All, Sites.ReadWrite.All. + +PART 3 : Test the Configuration +------------------------------- + +Step 1 – In Odoo, go to your odoo profile and select "Account +Security",then click on the “grey cloud icon". + +Step 2 – You will be redirected to the Microsoft login page. Sign in and +accept the requested permissions. You will then be redirected back to +Odoo. + +Step 3 – After authorization, Odoo should display a "blue cloud icon". +The connection is now established. + +|Test connexion from odoo profile| + +.. |Azure App dashboard| image:: https://raw.githubusercontent.com/OCA/storage/18.0/microsoft_drive_account/static/description/azure_storage_app.png +.. |Secret of Azure App| image:: https://raw.githubusercontent.com/OCA/storage/18.0/microsoft_drive_account/static/description/azure_storage_secret.png +.. |Permissions in Azure App| image:: https://raw.githubusercontent.com/OCA/storage/18.0/microsoft_drive_account/static/description/azure_storage_permissions.png +.. |Tenant URL| image:: https://raw.githubusercontent.com/OCA/storage/18.0/microsoft_drive_account/static/description/azure_storage_tenant_url.png +.. |Test connexion from odoo profile| image:: https://raw.githubusercontent.com/OCA/storage/18.0/microsoft_drive_account/static/description/azure_storage_test.png Usage ===== diff --git a/microsoft_drive_account/readme/CONFIGURE.md b/microsoft_drive_account/readme/CONFIGURE.md index ce5bb59cc6..41b43c82b9 100644 --- a/microsoft_drive_account/readme/CONFIGURE.md +++ b/microsoft_drive_account/readme/CONFIGURE.md @@ -1,6 +1,6 @@ In order to use the Microsoft Drive Account module, you need to follow this process for link Odoo and Microsoft: -### PART 1 : Create an Azure Application +## PART 1 : Create an Azure Application To allow Odoo to access Microsoft OneDrive or SharePoint through the Microsoft Graph API, you must create an application in Azure Active Directory. @@ -27,7 +27,7 @@ IMPORTANT : Grant admin consent so the application can use these permissions. ![Permissions in Azure App](../static/description/azure_storage_permissions.png) -### PART 2 : Set Odoo System Parameters +## PART 2 : Set Odoo System Parameters You need your tenant_url, you can find it in your Azure portal, open Home > Dashboard. Look at the URL, it's usually ends with onmicrosoft.com. @@ -44,7 +44,7 @@ Required parameters: Optional parameter : * microsoft_drive_client_scope : Defines the permissions requested by Odoo. If not defined, Odoo uses the default scopes: offline_access, openid, Files.ReadWrite.All, Sites.ReadWrite.All. -### PART 3 : Test the Configuration +## PART 3 : Test the Configuration Step 1 – In Odoo, go to your odoo profile and select "Account Security",then click on the “grey cloud icon". diff --git a/microsoft_drive_account/static/description/index.html b/microsoft_drive_account/static/description/index.html index 03911a6b4d..10f7226303 100644 --- a/microsoft_drive_account/static/description/index.html +++ b/microsoft_drive_account/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +Microsoft account for Drive -

+
+

Microsoft account for Drive

- - -Odoo Community Association - -
-

Microsoft account for Drive

-

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

This addon allows the user to link their Microsoft Drive account to Odoo. The stored credentials are then used by other addons to perform actions on Drive as the logged-in user.

Table of contents

-

Configuration

-

In order to use the Microsoft Drive Account module, you need to set -following configuration parameters in your Odoo instance:

+

Configuration

+

In order to use the Microsoft Drive Account module, you need to follow +this process for link Odoo and Microsoft:

+
+

PART 1 : Create an Azure Application

+

To allow Odoo to access Microsoft OneDrive or SharePoint through the +Microsoft Graph API, you must create an application in Azure Active +Directory.

+

Step 1 – Open the Azure portal and go to Azure Active Directory, then +“App registrations”, and click “New registration”.

+

Step 2 – Register the application. Set a name “Odoo storage +integration”. Select the third option “Accounts in any organizational +directory (Any Microsoft Entra ID tenant - Multitenant) and personal +Microsoft accounts (e.g. Skype, Xbox)” Add a Redirect URI of type “Web”. +{URL of your Odoo instance}/microsoft_account/authentication. Once the +application is created, note the Application (client) ID and the +Directory (tenant) ID.

+

Azure App dashboard

+

Step 3 – Generate a client secret. Go to Certificates & secrets, create +a new client secret (Description : Odoo storage secret / Expires : +24month), and copy its value. You will not be able to see it again.

+

Secret of Azure App

+

Step 4 – Configure API permissions. Open API permissions, add Microsoft +Graph “Application permissions”, and include Files.ReadWrite.All, and +Sites.ReadWrite.All. Add also “Delegated permission” for include +offline_access, openid.

+

IMPORTANT : Grant admin consent so the application can use these +permissions.

+

Permissions in Azure App

+
+
+

PART 2 : Set Odoo System Parameters

+

You need your tenant_url, you can find it in your Azure portal, open +Home > Dashboard. Look at the URL, it’s usually ends with +onmicrosoft.com.

+

Tenant URL

+

In Odoo, open Settings > Technical > System Parameters.

+

Required parameters:

    -
  • microsoft_account.auth_endpoint: The URL of the Microsoft -authentication endpoint. This is usually -https://login.microsoftonline.com/{your -endpoint id}/oauth2/v2.0/authorize.
  • -
  • microsoft_account.token_endpoint: The URL of the Microsoft token -endpoint. This is usually -https://login.microsoftonline.com/{your -endpoint id}/oauth2/v2.0/token.
  • -
  • microsoft_drive_client_id: The client ID of your Microsoft -application. This is a unique identifier for your application that you -can obtain from the Azure portal.
  • -
  • microsoft_drive_client_secret: The client secret of your Microsoft -application. This is a secret key that you can obtain from the Azure -portal. It is used to authenticate your application with the Microsoft -Graph API.
  • +
  • microsoft_account.auth_endpoint : This is the Microsoft OAuth2 +authorization URL. It usually has the form: +https://login.microsoftonline.com/{tenant_url}/oauth2/v2.0/authorize
  • +
  • microsoft_account.token_endpoint : This is the token endpoint URL, +usually: +https://login.microsoftonline.com/{tenant_url}/oauth2/v2.0/token
  • +
  • microsoft_drive_client_id : The Client ID of the Azure application.
  • +
  • microsoft_drive_client_secret : The Client Secret value generated in +Azure.
-

Optionally, you can set the following parameters:

+

Optional parameter :

    -
  • microsoft_drive_client_scope: The scope of the Microsoft application. -By default the following scopes are used
      -
    • offline_access
    • -
    • openid
    • -
    • Files.ReadWrite.All
    • -
    • Sites.ReadWrite.All
    • -
    -
  • +
  • microsoft_drive_client_scope : Defines the permissions requested by +Odoo. If not defined, Odoo uses the default scopes: offline_access, +openid, Files.ReadWrite.All, Sites.ReadWrite.All.
+
+

PART 3 : Test the Configuration

+

Step 1 – In Odoo, go to your odoo profile and select “Account +Security”,then click on the “grey cloud icon”.

+

Step 2 – You will be redirected to the Microsoft login page. Sign in and +accept the requested permissions. You will then be redirected back to +Odoo.

+

Step 3 – After authorization, Odoo should display a “blue cloud icon”. +The connection is now established.

+

Test connexion from odoo profile

+
+
-

Usage

+

Usage

On the user preference page, the user can link their Microsoft Drive account to Odoo by cliking on the Drive button. This will redirect the user to the Microsoft authentication page, where they can log in and @@ -436,7 +472,7 @@

Usage

their Drive account will be linked.

-

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 @@ -444,28 +480,28 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • ACSONE SA/NV
-

Other credits

+

Other credits

The development of this module has been financially supported by:

  • ACSONE SA/NV
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -480,6 +516,5 @@

Maintainers

-
From 216ab9a2481d75979e903c5546498081be69df0f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 26 May 2026 13:14:31 +0000 Subject: [PATCH 04/26] [BOT] post-merge updates --- README.md | 2 +- microsoft_drive_account/README.rst | 8 +++- microsoft_drive_account/__manifest__.py | 2 +- .../static/description/index.html | 38 +++++++++++-------- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 653dd618ec..b1173313c5 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ addon | version | maintainers | summary [fs_storage](fs_storage/) | 18.0.2.1.2 | | Implement the concept of Storage with amazon S3, sftp... [fs_storage_ms_drive](fs_storage_ms_drive/) | 18.0.2.0.0 | lmignon | 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.2.0.0 | lmignon | Link user with Microsoft +[microsoft_drive_account](microsoft_drive_account/) | 18.0.2.0.1 | lmignon | 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 diff --git a/microsoft_drive_account/README.rst b/microsoft_drive_account/README.rst index 4e288b7fdf..722307779d 100644 --- a/microsoft_drive_account/README.rst +++ b/microsoft_drive_account/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 + =========================== Microsoft account for Drive =========================== @@ -7,13 +11,13 @@ Microsoft account for Drive !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:45da0ca6403c800cbb29675b06c2f9065eed5626758a2c4d80391d732c38e8d7 + !! source digest: sha256:a62ab45f11d8374004463a4dcc823381cdd67e5e72ea05c2a43dd7c4bcef3d2a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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 diff --git a/microsoft_drive_account/__manifest__.py b/microsoft_drive_account/__manifest__.py index 2b396ce77e..6f8c1b9ea1 100644 --- a/microsoft_drive_account/__manifest__.py +++ b/microsoft_drive_account/__manifest__.py @@ -5,7 +5,7 @@ "name": "Microsoft account for Drive", "summary": """ Link user with Microsoft """, - "version": "18.0.2.0.0", + "version": "18.0.2.0.1", "license": "LGPL-3", "author": "ACSONE SA/NV,Odoo Community Association (OCA)", "website": "https://github.com/OCA/storage", diff --git a/microsoft_drive_account/static/description/index.html b/microsoft_drive_account/static/description/index.html index 10f7226303..5e4d1b40dd 100644 --- a/microsoft_drive_account/static/description/index.html +++ b/microsoft_drive_account/static/description/index.html @@ -3,7 +3,7 @@ -Microsoft account for Drive +README.rst -
-

Microsoft account for Drive

+
+ + +Odoo Community Association + +
+

Microsoft account for Drive

-

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

This addon allows the user to link their Microsoft Drive account to Odoo. The stored credentials are then used by other addons to perform actions on Drive as the logged-in user.

@@ -394,11 +399,11 @@

Microsoft account for Drive

-

Configuration

+

Configuration

In order to use the Microsoft Drive Account module, you need to follow this process for link Odoo and Microsoft:

-

PART 1 : Create an Azure Application

+

PART 1 : Create an Azure Application

To allow Odoo to access Microsoft OneDrive or SharePoint through the Microsoft Graph API, you must create an application in Azure Active Directory.

@@ -425,7 +430,7 @@

PART 1 : Create an Azure Applicat

Permissions in Azure App

-

PART 2 : Set Odoo System Parameters

+

PART 2 : Set Odoo System Parameters

You need your tenant_url, you can find it in your Azure portal, open Home > Dashboard. Look at the URL, it’s usually ends with onmicrosoft.com.

@@ -451,7 +456,7 @@

PART 2 : Set Odoo System Paramete

-

PART 3 : Test the Configuration

+

PART 3 : Test the Configuration

Step 1 – In Odoo, go to your odoo profile and select “Account Security”,then click on the “grey cloud icon”.

Step 2 – You will be redirected to the Microsoft login page. Sign in and @@ -463,7 +468,7 @@

PART 3 : Test the Configuration

-

Usage

+

Usage

On the user preference page, the user can link their Microsoft Drive account to Odoo by cliking on the Drive button. This will redirect the user to the Microsoft authentication page, where they can log in and @@ -472,7 +477,7 @@

Usage

their Drive account will be linked.

-

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 @@ -480,28 +485,28 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • ACSONE SA/NV
-

Other credits

+

Other credits

The development of this module has been financially supported by:

  • ACSONE SA/NV
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -516,5 +521,6 @@

Maintainers

+
From 325957e24401fb31de62d89036a83ab23a943d73 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 26 May 2026 13:20:00 +0000 Subject: [PATCH 05/26] [BOT] post-merge updates --- README.md | 2 +- fs_attachment/README.rst | 2 +- fs_attachment/__manifest__.py | 2 +- fs_attachment/static/description/index.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b1173313c5..448ad616f4 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Available addons ---------------- addon | version | maintainers | summary --- | --- | --- | --- -[fs_attachment](fs_attachment/) | 18.0.2.2.1 | lmignon | Store attachments on external object store +[fs_attachment](fs_attachment/) | 18.0.2.2.2 | lmignon | Store attachments on external object store [fs_attachment_s3](fs_attachment_s3/) | 18.0.1.2.0 | lmignon | Store attachments into S3 complient filesystem [fs_file](fs_file/) | 18.0.1.0.0 | lmignon | Field to store files into filesystem storages [fs_folder](fs_folder/) | 18.0.2.0.0 | lmignon | A module to link to Odoo records and manage from record forms forlders from external file systems diff --git a/fs_attachment/README.rst b/fs_attachment/README.rst index 8ae6109789..c13037b9d3 100644 --- a/fs_attachment/README.rst +++ b/fs_attachment/README.rst @@ -11,7 +11,7 @@ Base Attachment Object Store !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ae07154d0c96f19cbe1f6760cb690b0eefdea57af89985620fac1eef5d52f5fb + !! source digest: sha256:2247c3bace615168d55c67d0dffed04dda62c77a89434b15d04934e8a1f78184 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/fs_attachment/__manifest__.py b/fs_attachment/__manifest__.py index 38076afcc7..7ce2868501 100644 --- a/fs_attachment/__manifest__.py +++ b/fs_attachment/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Base Attachment Object Store", "summary": "Store attachments on external object store", - "version": "18.0.2.2.1", + "version": "18.0.2.2.2", "author": "Camptocamp, ACSONE SA/NV, Odoo Community Association (OCA)", "license": "AGPL-3", "development_status": "Beta", diff --git a/fs_attachment/static/description/index.html b/fs_attachment/static/description/index.html index 5c2b3e646c..21d18e4314 100644 --- a/fs_attachment/static/description/index.html +++ b/fs_attachment/static/description/index.html @@ -372,7 +372,7 @@

Base Attachment Object Store

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:ae07154d0c96f19cbe1f6760cb690b0eefdea57af89985620fac1eef5d52f5fb +!! source digest: sha256:2247c3bace615168d55c67d0dffed04dda62c77a89434b15d04934e8a1f78184 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

In some cases, you need to store attachment in another system that the From 091f6d65b0f1afb8bc4638df01c02e5ed69b9615 Mon Sep 17 00:00:00 2001 From: "Laurent Mignon (ACSONE)" Date: Mon, 18 Sep 2023 16:55:26 +0200 Subject: [PATCH 06/26] [ADD] fs_image_thumbnail: A drop-in replacement of storage_thumbnail --- fs_image_thumbnail/README.rst | 35 +++ fs_image_thumbnail/__init__.py | 1 + fs_image_thumbnail/__manifest__.py | 23 ++ .../i18n/fs_image_thumbnail.pot | 170 +++++++++++++ fs_image_thumbnail/models/__init__.py | 3 + .../models/fs_image_thumbnail_mixin.py | 238 ++++++++++++++++++ fs_image_thumbnail/models/fs_thumbnail.py | 11 + fs_image_thumbnail/models/ir_attachment.py | 16 ++ fs_image_thumbnail/readme/CONTEXT.rst | 17 ++ fs_image_thumbnail/readme/CONTRIBUTORS.rst | 1 + fs_image_thumbnail/readme/CREDITS.rst | 3 + fs_image_thumbnail/readme/DESCRIPTION.rst | 4 + fs_image_thumbnail/readme/USAGE.rst | 57 +++++ fs_image_thumbnail/security/fs_thumbnail.xml | 16 ++ .../static/description/icon.png | Bin 0 -> 9455 bytes fs_image_thumbnail/tests/__init__.py | 1 + .../tests/test_fs_image_thumbnail.py | 81 ++++++ .../views/fs_image_thumbnail_mixin.xml | 84 +++++++ fs_image_thumbnail/views/fs_thumbnail.xml | 62 +++++ fs_image_thumbnail/views/ir_attachment.xml | 19 ++ 20 files changed, 842 insertions(+) create mode 100644 fs_image_thumbnail/README.rst create mode 100644 fs_image_thumbnail/__init__.py create mode 100644 fs_image_thumbnail/__manifest__.py create mode 100644 fs_image_thumbnail/i18n/fs_image_thumbnail.pot create mode 100644 fs_image_thumbnail/models/__init__.py create mode 100644 fs_image_thumbnail/models/fs_image_thumbnail_mixin.py create mode 100644 fs_image_thumbnail/models/fs_thumbnail.py create mode 100644 fs_image_thumbnail/models/ir_attachment.py create mode 100644 fs_image_thumbnail/readme/CONTEXT.rst create mode 100644 fs_image_thumbnail/readme/CONTRIBUTORS.rst create mode 100644 fs_image_thumbnail/readme/CREDITS.rst create mode 100644 fs_image_thumbnail/readme/DESCRIPTION.rst create mode 100644 fs_image_thumbnail/readme/USAGE.rst create mode 100644 fs_image_thumbnail/security/fs_thumbnail.xml create mode 100644 fs_image_thumbnail/static/description/icon.png create mode 100644 fs_image_thumbnail/tests/__init__.py create mode 100644 fs_image_thumbnail/tests/test_fs_image_thumbnail.py create mode 100644 fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml create mode 100644 fs_image_thumbnail/views/fs_thumbnail.xml create mode 100644 fs_image_thumbnail/views/ir_attachment.xml diff --git a/fs_image_thumbnail/README.rst b/fs_image_thumbnail/README.rst new file mode 100644 index 0000000000..38929e8775 --- /dev/null +++ b/fs_image_thumbnail/README.rst @@ -0,0 +1,35 @@ +**This file is going to be generated by oca-gen-addon-readme.** + +*Manual changes will be overwritten.* + +Please provide content in the ``readme`` directory: + +* **DESCRIPTION.rst** (required) +* INSTALL.rst (optional) +* CONFIGURE.rst (optional) +* **USAGE.rst** (optional, highly recommended) +* DEVELOP.rst (optional) +* ROADMAP.rst (optional) +* HISTORY.rst (optional, recommended) +* **CONTRIBUTORS.rst** (optional, highly recommended) +* CREDITS.rst (optional) + +Content of this README will also be drawn from the addon manifest, +from keys such as name, authors, maintainers, development_status, +and license. + +A good, one sentence summary in the manifest is also highly recommended. + + +Automatic changelog generation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`HISTORY.rst` can be auto generated using `towncrier `_. + +Just put towncrier compatible changelog fragments into `readme/newsfragments` +and the changelog file will be automatically generated and updated when a new fragment is added. + +Please refer to `towncrier` documentation to know more. + +NOTE: the changelog will be automatically generated when using `/ocabot merge $option`. +If you need to run it manually, refer to `OCA/maintainer-tools README `_. diff --git a/fs_image_thumbnail/__init__.py b/fs_image_thumbnail/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/fs_image_thumbnail/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/fs_image_thumbnail/__manifest__.py b/fs_image_thumbnail/__manifest__.py new file mode 100644 index 0000000000..ac56be61ba --- /dev/null +++ b/fs_image_thumbnail/__manifest__.py @@ -0,0 +1,23 @@ +# Copyright 2023 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Fs Image Thumbnail", + "summary": """ + Generate and store thumbnail for images""", + "version": "16.0.1.0.0", + "license": "AGPL-3", + "author": "ACSONE SA/NV,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/storage", + "depends": ["fs_image", "base_partition"], + "data": [ + "views/ir_attachment.xml", + "security/fs_thumbnail.xml", + "views/fs_image_thumbnail_mixin.xml", + "views/fs_thumbnail.xml", + ], + "demo": [], + "maintainers": ["lmignon"], + "development_status": "Alpha", + "external_dependencies": {"python": ["python_slugify"]}, +} diff --git a/fs_image_thumbnail/i18n/fs_image_thumbnail.pot b/fs_image_thumbnail/i18n/fs_image_thumbnail.pot new file mode 100644 index 0000000000..6c712d97e7 --- /dev/null +++ b/fs_image_thumbnail/i18n/fs_image_thumbnail.pot @@ -0,0 +1,170 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fs_image_thumbnail +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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: fs_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_ir_attachment +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__attachment_id +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Attachment" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__attachment_id +msgid "Attachment containing the original image" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Base Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_uid +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_thumbnail_search_view +msgid "Created by" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_date +msgid "Created on" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__display_name +msgid "Display Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_fs_image_thumbnail_mixin +msgid "Fs Image Thumbnail Mixin" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.ui.menu,name:fs_image_thumbnail.fs_thumbnail_menu +msgid "Fs Image Thumbnails" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.actions.act_window,name:fs_image_thumbnail.fs_thumbnail_act_window +msgid "Fs Thumbnail" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Group By" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__id +msgid "ID" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__image +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__image +msgid "Image" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_fs_thumbnail +msgid "Image Thumbnail" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update +msgid "Last Modified on" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_date +msgid "Last Updated on" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "MimeType" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__mimetype +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__mimetype +msgid "Mimetype" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__name +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__name +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__original_image +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__original_image +msgid "Original Image" +msgstr "" + +#. module: fs_image_thumbnail +#. odoo-python +#: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 +#, python-format +msgid "The base name must be set when multiple images are given" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__base_name +msgid "The base name of the thumbnail image (without extension)" +msgstr "" + +#. module: fs_image_thumbnail +#. odoo-python +#: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 +#, python-format +msgid "The image %(name)s must be attached to an attachment" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__base_name +msgid "" +"The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . + extension.\n" +"If not set, the base name will be the name of the original image.This base name is used to find all existing thumbnail of an image generated for the same base name." +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view +msgid "Thumbnails" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_x +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_x +msgid "X size" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_y +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_y +msgid "Y size" +msgstr "" diff --git a/fs_image_thumbnail/models/__init__.py b/fs_image_thumbnail/models/__init__.py new file mode 100644 index 0000000000..0ef2d28a1d --- /dev/null +++ b/fs_image_thumbnail/models/__init__.py @@ -0,0 +1,3 @@ +from . import fs_image_thumbnail_mixin +from . import fs_thumbnail +from . import ir_attachment diff --git a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py new file mode 100644 index 0000000000..5a42730e2c --- /dev/null +++ b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py @@ -0,0 +1,238 @@ +# Copyright 2023 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from slugify import slugify + +from odoo import _, api, fields, models +from odoo.exceptions import UserError + +from odoo.addons.fs_image.fields import FSImage, FSImageValue + + +class FsImageThumbnailMixin(models.AbstractModel): + """Mixin defining what is a thumbnail image and providing a + method to generate a thumbnail image from an image. + + """ + + _name = "fs.image.thumbnail.mixin" + _description = "Fs Image Thumbnail Mixin" + + image = FSImage("Image", required=True) + original_image = FSImage("Original Image", compute="_compute_original_image") + size_x = fields.Integer("X size", required=True) + size_y = fields.Integer("Y size", required=True) + base_name = fields.Char( + "The base name of the thumbnail image (without extension)", + required=True, + help="The thumbnail image will be named as base_name " + "+ _ + size_x + _ + size_y + . + extension.\n" + "If not set, the base name will be the name of the original image." + "This base name is used to find all existing thumbnail of an image generated " + "for the same base name.", + ) + + attachment_id = fields.Many2one( + comodel_name="ir.attachment", + string="Attachment", + help="Attachment containing the original image", + required=True, + ) + name = fields.Char( + compute="_compute_name", + store=True, + ) + mimetype = fields.Char( + compute="_compute_mimetype", + store=True, + ) + + @api.depends("image") + def _compute_name(self): + for record in self: + record.name = record.image.name if record.image else None + + @api.depends("image") + def _compute_mimetype(self): + for record in self: + record.mimetype = record.image.mimetype if record.image else None + + @api.depends("attachment_id") + def _compute_original_image(self): + original_image_field = self._fields["original_image"] + for record in self: + value = None + if record.attachment_id: + value = original_image_field._convert_attachment_to_cache( + record.attachment_id + ) + record.original_image = value + + @api.model + def _resize(self, image: FSImage, size_x: int, size_y: int, fmt: str = "") -> bytes: + """Resize the given image to the given size. + + :param image: the image to resize + :param size_x: the new width of the image + :param size_y: the new height of the image + :param fmt: the output format of the image. Can be PNG, JPEG, GIF, or ICO. + Default to the format of the original image. BMP is converted to + PNG, other formats than those mentioned above are converted to JPEG. + :return: the resized image + """ + # image_process only accept PNG, JPEG, GIF, or ICO as output format + # in uppercase. Remove the dot if present and convert to uppercase. + fmt = fmt.upper().replace(".", "") + return image.image_process(size=(size_x, size_y), output_format=fmt) + + @api.model + def _get_resize_format(self, image: FSImage) -> str: + """Get the format to use to resize an image. + + :return: the format to use to resize an image + """ + fmt = ( + self.env["ir.config_parameter"] + .sudo() + .get_param("fs_image_thumbnail.resize_format") + ) + return fmt or image.extension + + @api.model + def _prepare_tumbnail( + self, image: FSImage, size_x: int, size_y: int, base_name: str + ) -> dict: + """Prepare the values to create a thumbnail image from the given image. + + :param image: the image to resize + :param size_x: the new width of the image + :param size_y: the new height of the image + :param base_name: the base name of the thumbnail image (without extension) + :return: the values to create a thumbnail image + """ + fmt = self._get_resize_format(image) + extension = fmt + # Add a dot before the extension if needed and convert to lowercase. + extension = extension.lower() + if extension and not extension.startswith("."): + extension = "." + extension + new_image = FSImageValue( + value=self._resize(image, size_x, size_y, fmt), + name="%s_%s_%s%s" % (base_name, size_x, size_y, extension), + alt_text=image.alt_text, + ) + return { + "image": new_image, + "size_x": size_x, + "size_y": size_y, + "base_name": base_name, + "attachment_id": image.attachment.id, + } + + @api.model + def _slugify_base_name(self, base_name: str) -> str: + """Slugify the given base name. + + :param base_name: the base name to slugify + :return: the slugified base name + """ + return slugify(base_name) if base_name else base_name + + @api.model + def _get_existing_thumbnail_domain( + self, *images: tuple[FSImageValue], base_name: str = "" + ) -> list: + """Get the domain to find existing thumbnail images from the given image. + + :param images: a list of images we want to find existing thumbnails + :param base_name: the base name of the thumbnail image (without extension) + The base name must be set when multiple images are given. + :return: the domain to find existing thumbnail images + """ + attachment_ids = [] + for image in images: + if image.attachment: + attachment_ids.append(image.attachment.id) + else: + raise UserError( + _( + "The image %(name)s must be attached to an attachment", + name=image.name, + ) + ) + base_name = self._get_slugified_base_name(*images, base_name=base_name) + return [ + ("attachment_id", "in", attachment_ids), + ("base_name", "=", base_name), + ] + + @api.model + def get_thumbnails( + self, *images: tuple[FSImageValue], base_name: str = "" + ) -> list["FsImageThumbnailMixin"]: + """Get existing thumbnail images from the given image. + + :param images: a list of images we want to find existing thumbnails + :param base_name: the base name of the thumbnail image (without extension) + The base name must be set when multiple images are given. + :return: a recordset of thumbnail images + """ + domain = self._get_existing_thumbnail_domain(*images, base_name=base_name) + return self.search(domain) + + @api.model + def get_or_create_thumbnails( + self, + *images: tuple[FSImageValue], + sizes: list[tuple[int, int]], + base_name: str = "" + ) -> list["FsImageThumbnailMixin"]: + """Get or create a thumbnail images from the given image. + + :param images: the list of images we want to get or create thumbnails + :param sizes: the list of sizes to use to resize the image + (list of tuple (size_x, size_y)) + :param base_name: the base name of the thumbnail image (without extension) + The base name must be set when multiple images are given. + :return: a dictionary where the key is the original image and the value is + a recordset of thumbnail images + """ + base_name = self._get_slugified_base_name(*images, base_name=base_name) + thumbnails = self.get_thumbnails(*images, base_name=base_name) + thumbnails_by_attachment_id = thumbnails.partition("attachment_id") + ret = {} + for image in images: + thumbnails_by_size = { + (thumbnail.size_x, thumbnail.size_y): thumbnail + for thumbnail in thumbnails_by_attachment_id.get(image.attachment, []) + } + ids_to_return = [] + for size_x, size_y in sizes: + thumbnail = thumbnails_by_size.get((size_x, size_y)) + if not thumbnail: + values = self._prepare_tumbnail(image, size_x, size_y, base_name) + # no creation possible outside of this method -> sudo() is + # required since no access rights defined on create + thumbnail = self.sudo().create(values) + ids_to_return.append(thumbnail.id) + # return the thumbnails browsed in the same security context as the method + # caller + ret[image] = self.browse(ids_to_return) + return ret + + @api.model + def _get_slugified_base_name( + self, *images: tuple[FSImageValue], base_name: str + ) -> str: + """Get the base name of the thumbnail image (without extension). + + :param images: the list of images we want to get the base name + :return: the base name of the thumbnail image + """ + if not base_name: + if len(images) > 1: + raise UserError( + _("The base name must be set when multiple images are given") + ) + base_name = images[0].name + return self._slugify_base_name(base_name) diff --git a/fs_image_thumbnail/models/fs_thumbnail.py b/fs_image_thumbnail/models/fs_thumbnail.py new file mode 100644 index 0000000000..bf2df3d097 --- /dev/null +++ b/fs_image_thumbnail/models/fs_thumbnail.py @@ -0,0 +1,11 @@ +# Copyright 2023 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class FsThumbnail(models.Model): + + _name = "fs.thumbnail" + _inherit = "fs.image.thumbnail.mixin" + _description = "Image Thumbnail" diff --git a/fs_image_thumbnail/models/ir_attachment.py b/fs_image_thumbnail/models/ir_attachment.py new file mode 100644 index 0000000000..23116ecb9b --- /dev/null +++ b/fs_image_thumbnail/models/ir_attachment.py @@ -0,0 +1,16 @@ +# Copyright 2023 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class IrAttachment(models.Model): + + _inherit = "ir.attachment" + + thumbnail_ids = fields.One2many( + comodel_name="fs.thumbnail", + inverse_name="attachment_id", + string="Thumbnails", + readonly=True, + ) diff --git a/fs_image_thumbnail/readme/CONTEXT.rst b/fs_image_thumbnail/readme/CONTEXT.rst new file mode 100644 index 0000000000..4c7e0559ac --- /dev/null +++ b/fs_image_thumbnail/readme/CONTEXT.rst @@ -0,0 +1,17 @@ +In some specific cases you may need to generate and store thumbnails of images in Odoo. +This is the case for example when you want to provide image in specific sizes for a website +or a mobile application. + +This module provides a generic way to generate thumbnails of images and store them in a +specific filesystem storage. Indeed, you could need to store the thumbnails in a different +storage than the original image (eg: store the thumbnails in a CDN) to make sure the +thumbnails are served quickly when requested by an external application and to +avoid to expose the original image storage. + +This module uses the `fs_image `_ +module to store the thumbnails in a filesystem storage. + +The `shopinvader_product_image `_ addon uses this module to generate and +store the thumbnails of the images of the products and categories to be accessible +by the website. diff --git a/fs_image_thumbnail/readme/CONTRIBUTORS.rst b/fs_image_thumbnail/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..1480ca2b76 --- /dev/null +++ b/fs_image_thumbnail/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Laurent Mignon (https://acsone.eu) diff --git a/fs_image_thumbnail/readme/CREDITS.rst b/fs_image_thumbnail/readme/CREDITS.rst new file mode 100644 index 0000000000..82c081d258 --- /dev/null +++ b/fs_image_thumbnail/readme/CREDITS.rst @@ -0,0 +1,3 @@ +The development of this module has been financially supported by: + +* `Alcyon Belux `_ diff --git a/fs_image_thumbnail/readme/DESCRIPTION.rst b/fs_image_thumbnail/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..6ce408a456 --- /dev/null +++ b/fs_image_thumbnail/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +This module extends the **fs_image** addon to support the creation and the storage of +thumbnails for images. This module is a **technical module** and is not +meant to be installed by end-users. It only provides a mixin to be used +by other modules and a model to store the thumbnails. diff --git a/fs_image_thumbnail/readme/USAGE.rst b/fs_image_thumbnail/readme/USAGE.rst new file mode 100644 index 0000000000..4a539166fe --- /dev/null +++ b/fs_image_thumbnail/readme/USAGE.rst @@ -0,0 +1,57 @@ +This addon provides a convenient way to get and create if not exists image +thumbnails. All the logic is implemented by the abstract model +`fs.image.thumbnail.mixin`. The main method is `get_or_create_thumbnails` which +accepts a *FSImageValue* instance, a list of thumbnail sizes and a base name. + +When the method is called, it will check if the thumbnail exists for the given +sizes and base name. If not, it will create it. + +The `fs.thumbnail` model provided by this addon is a concrete implementation of +the abstract model `fs.image.thumbnail.mixin`. The motivation to implement all the +logic in an abstract model is to allow developers to create their own thumbnail +models. This could be useful if you want to store the thumbnails in a different +storage since you can specify the storage to use by model on the `fs.storage` +form view. + +Creating / retrieving thumbnails is as simple as: + +.. code-block:: python + + from odoo.addons.fs_image.fields import FSImageValue + + # create an attachment with a image file + attachment = self.env['ir.attachment'].create({ + 'name': 'test', + 'datas': base64.b64encode(open('test.png', 'rb').read()), + 'datas_fname': 'test.png', + }) + + # create a FSImageValue instance for the attachment + image_value = FSImageValue(attachment) + + # get or create the thumbnails + thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails( + image_value, [(800,600), (400, 200)], 'my base name') + + + +If you've a model with a *FSImage* field, the call to `get_or_create_thumbnails` +is even simpler: + +.. code-block:: python + + from odoo import models + from odoo.addons.fs_image.fields import FSImage + + class MyModel(models.Model): + _name = 'my.model' + + image = FSImage('Image') + + my_record = cls.env['my.model'].create({ + 'image': open('test.png', 'rb'), + }) + + # get or create the thumbnails + thumbnails = record.image.get_or_create_thumbnails(my_record.image, + [(800,600), (400, 200)], 'my base name') diff --git a/fs_image_thumbnail/security/fs_thumbnail.xml b/fs_image_thumbnail/security/fs_thumbnail.xml new file mode 100644 index 0000000000..7690d990f4 --- /dev/null +++ b/fs_image_thumbnail/security/fs_thumbnail.xml @@ -0,0 +1,16 @@ + + + + + + fs.thumbnail access read + + + + + + + + + diff --git a/fs_image_thumbnail/static/description/icon.png b/fs_image_thumbnail/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/fs_image_thumbnail/tests/__init__.py b/fs_image_thumbnail/tests/__init__.py new file mode 100644 index 0000000000..919947aec7 --- /dev/null +++ b/fs_image_thumbnail/tests/__init__.py @@ -0,0 +1 @@ +from . import test_fs_image_thumbnail diff --git a/fs_image_thumbnail/tests/test_fs_image_thumbnail.py b/fs_image_thumbnail/tests/test_fs_image_thumbnail.py new file mode 100644 index 0000000000..3caa4b5265 --- /dev/null +++ b/fs_image_thumbnail/tests/test_fs_image_thumbnail.py @@ -0,0 +1,81 @@ +# Copyright 2023 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import base64 +import io + +from PIL import Image + +from odoo.tests.common import TransactionCase + +from odoo.addons.fs_image.fields import FSImageValue + + +class TestFsImageThumbnail(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.white_image = cls._create_image(32, 32, color="#FFFFFF") + + cls.image_attachment = cls.env["ir.attachment"].create( + { + "name": "Test Image", + "datas": base64.b64encode(cls.white_image), + "mimetype": "image/png", + } + ) + + cls.fs_image_value = FSImageValue(attachment=cls.image_attachment) + cls.fs_thumbnail_model = cls.env["fs.thumbnail"] + + def setUp(self): + super().setUp() + self.temp_dir = self.env["fs.storage"].create( + { + "name": "Temp FS Storage", + "protocol": "memory", + "code": "mem_dir", + "directory_path": "/tmp/", + "model_xmlids": "fs_image_thumbnail.model_fs_thumbnail", + } + ) + + @classmethod + def _create_image(cls, width, height, color="#4169E1", img_format="PNG"): + f = io.BytesIO() + Image.new("RGB", (width, height), color).save(f, img_format) + f.seek(0) + return f.read() + + def assert_image_size(self, value: bytes, width, height): + self.assertEqual(Image.open(io.BytesIO(value)).size, (width, height)) + + def test_create_multi(self): + self.assertFalse(self.image_attachment.thumbnail_ids) + thumbnails = self.fs_thumbnail_model.get_or_create_thumbnails( + self.fs_image_value, sizes=[(16, 16), (8, 8)], base_name="My super test" + )[self.fs_image_value] + self.assertEqual(len(thumbnails), 2) + self.assertEqual(thumbnails[0].name, "my-super-test_16_16.png") + self.assert_image_size(thumbnails[0].image.getvalue(), 16, 16) + self.assertEqual(thumbnails[1].name, "my-super-test_8_8.png") + self.assert_image_size(thumbnails[1].image.getvalue(), 8, 8) + + self.assertEqual(self.image_attachment.thumbnail_ids, thumbnails) + + # if we call the method again for the same size, we should get the same thumbnail + new_thumbnails = self.fs_thumbnail_model.get_or_create_thumbnails( + self.fs_image_value, sizes=[(16, 16), (8, 8)], base_name="My super test" + )[self.fs_image_value] + self.assertEqual(new_thumbnails, thumbnails) + + def test_create_with_specific_format(self): + self.env["ir.config_parameter"].set_param( + "fs_image_thumbnail.resize_format", "JPEG" + ) + thumbnail = self.fs_thumbnail_model.get_or_create_thumbnails( + self.fs_image_value, sizes=[(8, 8)], base_name="My super test" + )[self.fs_image_value] + self.assertEqual(thumbnail[0].name, "my-super-test_8_8.jpeg") + self.assertEqual(thumbnail[0].mimetype, "image/jpeg") + self.assert_image_size(thumbnail[0].image.getvalue(), 8, 8) diff --git a/fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml b/fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml new file mode 100644 index 0000000000..8dfac21a0f --- /dev/null +++ b/fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml @@ -0,0 +1,84 @@ + + + + + + fs.image.thumbnail.mixin.form (in fs_image_thumbnail) + fs.image.thumbnail.mixin + +

+
+
+ + +
+ + + + + fs.image.thumbnail.mixin.search (in fs_image_thumbnail) + fs.image.thumbnail.mixin + + + + + + + + + + + + + + + fs.image.thumbnail.mixin.tree (in fs_image_thumbnail) + fs.image.thumbnail.mixin + + + + + + + + + + + + diff --git a/fs_image_thumbnail/views/fs_thumbnail.xml b/fs_image_thumbnail/views/fs_thumbnail.xml new file mode 100644 index 0000000000..9de1fd6cf4 --- /dev/null +++ b/fs_image_thumbnail/views/fs_thumbnail.xml @@ -0,0 +1,62 @@ + + + + + + fs.thumbnail.form + fs.thumbnail + + primary + + + + + + + + + + fs.thumbnail.search + fs.thumbnail + + primary + + + + + + + + + fs.thumbnail.tree + fs.thumbnail + + primary + + + + + + + + + + Fs Thumbnail + fs.thumbnail + tree,form + [] + {} + + + + Fs Image Thumbnails + + + + + diff --git a/fs_image_thumbnail/views/ir_attachment.xml b/fs_image_thumbnail/views/ir_attachment.xml new file mode 100644 index 0000000000..2855a1c64f --- /dev/null +++ b/fs_image_thumbnail/views/ir_attachment.xml @@ -0,0 +1,19 @@ + + + + + + ir.attachment.form (in fs_image_thumbnail) + ir.attachment + + + + + + + + + + + From b2a5006b5cc344804df3f86f10f05893f31f5d1f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 25 Sep 2023 07:49:18 +0000 Subject: [PATCH 07/26] [BOT] post-merge updates --- fs_image_thumbnail/README.rst | 194 ++++++- .../static/description/index.html | 510 ++++++++++++++++++ 2 files changed, 680 insertions(+), 24 deletions(-) create mode 100644 fs_image_thumbnail/static/description/index.html diff --git a/fs_image_thumbnail/README.rst b/fs_image_thumbnail/README.rst index 38929e8775..bc2c1d9c01 100644 --- a/fs_image_thumbnail/README.rst +++ b/fs_image_thumbnail/README.rst @@ -1,35 +1,181 @@ -**This file is going to be generated by oca-gen-addon-readme.** +================== +Fs Image Thumbnail +================== -*Manual changes will be overwritten.* +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:2870e8b0fff2e9c98e03464d4e19512a1b92c822997d6cd7ca1fd062805d7931 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -Please provide content in the ``readme`` directory: +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstorage-lightgray.png?logo=github + :target: https://github.com/OCA/storage/tree/16.0/fs_image_thumbnail + :alt: OCA/storage +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_image_thumbnail + :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=16.0 + :alt: Try me on Runboat -* **DESCRIPTION.rst** (required) -* INSTALL.rst (optional) -* CONFIGURE.rst (optional) -* **USAGE.rst** (optional, highly recommended) -* DEVELOP.rst (optional) -* ROADMAP.rst (optional) -* HISTORY.rst (optional, recommended) -* **CONTRIBUTORS.rst** (optional, highly recommended) -* CREDITS.rst (optional) +|badge1| |badge2| |badge3| |badge4| |badge5| -Content of this README will also be drawn from the addon manifest, -from keys such as name, authors, maintainers, development_status, -and license. +This module extends the **fs_image** addon to support the creation and the storage of +thumbnails for images. This module is a **technical module** and is not +meant to be installed by end-users. It only provides a mixin to be used +by other modules and a model to store the thumbnails. -A good, one sentence summary in the manifest is also highly recommended. +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ +**Table of contents** -Automatic changelog generation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. contents:: + :local: -`HISTORY.rst` can be auto generated using `towncrier `_. +Use Cases / Context +=================== -Just put towncrier compatible changelog fragments into `readme/newsfragments` -and the changelog file will be automatically generated and updated when a new fragment is added. +In some specific cases you may need to generate and store thumbnails of images in Odoo. +This is the case for example when you want to provide image in specific sizes for a website +or a mobile application. -Please refer to `towncrier` documentation to know more. +This module provides a generic way to generate thumbnails of images and store them in a +specific filesystem storage. Indeed, you could need to store the thumbnails in a different +storage than the original image (eg: store the thumbnails in a CDN) to make sure the +thumbnails are served quickly when requested by an external application and to +avoid to expose the original image storage. -NOTE: the changelog will be automatically generated when using `/ocabot merge $option`. -If you need to run it manually, refer to `OCA/maintainer-tools README `_. +This module uses the `fs_image `_ +module to store the thumbnails in a filesystem storage. + +The `shopinvader_product_image `_ addon uses this module to generate and +store the thumbnails of the images of the products and categories to be accessible +by the website. + +Usage +===== + +This addon provides a convenient way to get and create if not exists image +thumbnails. All the logic is implemented by the abstract model +`fs.image.thumbnail.mixin`. The main method is `get_or_create_thumbnails` which +accepts a *FSImageValue* instance, a list of thumbnail sizes and a base name. + +When the method is called, it will check if the thumbnail exists for the given +sizes and base name. If not, it will create it. + +The `fs.thumbnail` model provided by this addon is a concrete implementation of +the abstract model `fs.image.thumbnail.mixin`. The motivation to implement all the +logic in an abstract model is to allow developers to create their own thumbnail +models. This could be useful if you want to store the thumbnails in a different +storage since you can specify the storage to use by model on the `fs.storage` +form view. + +Creating / retrieving thumbnails is as simple as: + +.. code-block:: python + + from odoo.addons.fs_image.fields import FSImageValue + + # create an attachment with a image file + attachment = self.env['ir.attachment'].create({ + 'name': 'test', + 'datas': base64.b64encode(open('test.png', 'rb').read()), + 'datas_fname': 'test.png', + }) + + # create a FSImageValue instance for the attachment + image_value = FSImageValue(attachment) + + # get or create the thumbnails + thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails( + image_value, [(800,600), (400, 200)], 'my base name') + + + +If you've a model with a *FSImage* field, the call to `get_or_create_thumbnails` +is even simpler: + +.. code-block:: python + + from odoo import models + from odoo.addons.fs_image.fields import FSImage + + class MyModel(models.Model): + _name = 'my.model' + + image = FSImage('Image') + + my_record = cls.env['my.model'].create({ + 'image': open('test.png', 'rb'), + }) + + # get or create the thumbnails + thumbnails = record.image.get_or_create_thumbnails(my_record.image, + [(800,600), (400, 200)], 'my base name') + +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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* ACSONE SA/NV + +Contributors +~~~~~~~~~~~~ + +* Laurent Mignon (https://acsone.eu) + +Other credits +~~~~~~~~~~~~~ + +The development of this module has been financially supported by: + +* `Alcyon Belux `_ + +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. + +.. |maintainer-lmignon| image:: https://github.com/lmignon.png?size=40px + :target: https://github.com/lmignon + :alt: lmignon + +Current `maintainer `__: + +|maintainer-lmignon| + +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/fs_image_thumbnail/static/description/index.html b/fs_image_thumbnail/static/description/index.html new file mode 100644 index 0000000000..0e75991e04 --- /dev/null +++ b/fs_image_thumbnail/static/description/index.html @@ -0,0 +1,510 @@ + + + + + + +Fs Image Thumbnail + + + +
+

Fs Image Thumbnail

+ + +

Alpha License: AGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

+

This module extends the fs_image addon to support the creation and the storage of +thumbnails for images. This module is a technical module and is not +meant to be installed by end-users. It only provides a mixin to be used +by other modules and a model to store the thumbnails.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Use Cases / Context

+

In some specific cases you may need to generate and store thumbnails of images in Odoo. +This is the case for example when you want to provide image in specific sizes for a website +or a mobile application.

+

This module provides a generic way to generate thumbnails of images and store them in a +specific filesystem storage. Indeed, you could need to store the thumbnails in a different +storage than the original image (eg: store the thumbnails in a CDN) to make sure the +thumbnails are served quickly when requested by an external application and to +avoid to expose the original image storage.

+

This module uses the fs_image +module to store the thumbnails in a filesystem storage.

+

The shopinvader_product_image addon uses this module to generate and +store the thumbnails of the images of the products and categories to be accessible +by the website.

+
+
+

Usage

+

This addon provides a convenient way to get and create if not exists image +thumbnails. All the logic is implemented by the abstract model +fs.image.thumbnail.mixin. The main method is get_or_create_thumbnails which +accepts a FSImageValue instance, a list of thumbnail sizes and a base name.

+

When the method is called, it will check if the thumbnail exists for the given +sizes and base name. If not, it will create it.

+

The fs.thumbnail model provided by this addon is a concrete implementation of +the abstract model fs.image.thumbnail.mixin. The motivation to implement all the +logic in an abstract model is to allow developers to create their own thumbnail +models. This could be useful if you want to store the thumbnails in a different +storage since you can specify the storage to use by model on the fs.storage +form view.

+

Creating / retrieving thumbnails is as simple as:

+
+from odoo.addons.fs_image.fields import FSImageValue
+
+# create an attachment with a image file
+attachment = self.env['ir.attachment'].create({
+    'name': 'test',
+    'datas': base64.b64encode(open('test.png', 'rb').read()),
+    'datas_fname': 'test.png',
+})
+
+# create a FSImageValue instance for the attachment
+image_value = FSImageValue(attachment)
+
+# get or create the thumbnails
+thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails(
+    image_value, [(800,600), (400, 200)], 'my base name')
+
+

If you’ve a model with a FSImage field, the call to get_or_create_thumbnails +is even simpler:

+
+from odoo import models
+from odoo.addons.fs_image.fields import FSImage
+
+class MyModel(models.Model):
+    _name = 'my.model'
+
+    image = FSImage('Image')
+
+my_record = cls.env['my.model'].create({
+    'image': open('test.png', 'rb'),
+})
+
+# get or create the thumbnails
+thumbnails = record.image.get_or_create_thumbnails(my_record.image,
+    [(800,600), (400, 200)], 'my base name')
+
+
+
+

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.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • ACSONE SA/NV
  • +
+
+ +
+

Other credits

+

The development of this module has been financially supported by:

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainer:

+

lmignon

+

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.

+
+
+
+ + From 0e8d5f1f788b050e9b288b61d7166290f4a00991 Mon Sep 17 00:00:00 2001 From: "Laurent Mignon (ACSONE)" Date: Wed, 4 Oct 2023 09:20:22 +0200 Subject: [PATCH 08/26] [FIX] fs_image_thumbnail: Keep images order in result of get_or_create_thumbnails --- fs_image_thumbnail/models/fs_image_thumbnail_mixin.py | 11 +++++++---- fs_image_thumbnail/readme/newsfragments/.gitignore | 0 fs_image_thumbnail/readme/newsfragments/282.bugfix | 6 ++++++ 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 fs_image_thumbnail/readme/newsfragments/.gitignore create mode 100644 fs_image_thumbnail/readme/newsfragments/282.bugfix diff --git a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py index 5a42730e2c..af59f0b88d 100644 --- a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py +++ b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py @@ -1,6 +1,8 @@ # Copyright 2023 ACSONE SA/NV # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from collections import OrderedDict + from slugify import slugify from odoo import _, api, fields, models @@ -186,7 +188,7 @@ def get_or_create_thumbnails( *images: tuple[FSImageValue], sizes: list[tuple[int, int]], base_name: str = "" - ) -> list["FsImageThumbnailMixin"]: + ) -> OrderedDict[FSImageValue, list["FsImageThumbnailMixin"]]: """Get or create a thumbnail images from the given image. :param images: the list of images we want to get or create thumbnails @@ -194,13 +196,14 @@ def get_or_create_thumbnails( (list of tuple (size_x, size_y)) :param base_name: the base name of the thumbnail image (without extension) The base name must be set when multiple images are given. - :return: a dictionary where the key is the original image and the value is - a recordset of thumbnail images + :return: an ordered dictionary where the key is the original image and + the value is a recordset of thumbnail images. The order of the dict + is the order of the images passed to the method. """ base_name = self._get_slugified_base_name(*images, base_name=base_name) thumbnails = self.get_thumbnails(*images, base_name=base_name) thumbnails_by_attachment_id = thumbnails.partition("attachment_id") - ret = {} + ret = OrderedDict[FSImageValue, list["FsImageThumbnailMixin"]]() for image in images: thumbnails_by_size = { (thumbnail.size_x, thumbnail.size_y): thumbnail diff --git a/fs_image_thumbnail/readme/newsfragments/.gitignore b/fs_image_thumbnail/readme/newsfragments/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/fs_image_thumbnail/readme/newsfragments/282.bugfix b/fs_image_thumbnail/readme/newsfragments/282.bugfix new file mode 100644 index 0000000000..f96616eabf --- /dev/null +++ b/fs_image_thumbnail/readme/newsfragments/282.bugfix @@ -0,0 +1,6 @@ +The call to the method *get_or_create_thumbnails* on the *fs.image.thumbnail.mixin* +class returns now an ordered dictionary where the key is the original image and +the value is a recordset of thumbnail images. The order of the dict is the order +of the images passed to the method. This ensures that when you process the result +of the method you can be sure that the order of the images is the same as the +order of the images passed to the method. From 53c847db2b683067baa9432a28bf8b905138196b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 4 Oct 2023 07:52:30 +0000 Subject: [PATCH 09/26] [BOT] post-merge updates --- fs_image_thumbnail/README.rst | 17 ++++++- fs_image_thumbnail/__manifest__.py | 2 +- fs_image_thumbnail/readme/HISTORY.rst | 11 +++++ .../readme/newsfragments/282.bugfix | 6 --- .../static/description/index.html | 45 +++++++++++++------ 5 files changed, 60 insertions(+), 21 deletions(-) create mode 100644 fs_image_thumbnail/readme/HISTORY.rst delete mode 100644 fs_image_thumbnail/readme/newsfragments/282.bugfix diff --git a/fs_image_thumbnail/README.rst b/fs_image_thumbnail/README.rst index bc2c1d9c01..2a3b987440 100644 --- a/fs_image_thumbnail/README.rst +++ b/fs_image_thumbnail/README.rst @@ -7,7 +7,7 @@ Fs Image Thumbnail !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2870e8b0fff2e9c98e03464d4e19512a1b92c822997d6cd7ca1fd062805d7931 + !! source digest: sha256:3bb3cbeae4c613ddad99937001cf3035bbfc1097e93d97c8d4caf64e941256fe !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png @@ -125,6 +125,21 @@ is even simpler: thumbnails = record.image.get_or_create_thumbnails(my_record.image, [(800,600), (400, 200)], 'my base name') +Changelog +========= + +16.0.1.0.1 (2023-10-04) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- The call to the method *get_or_create_thumbnails* on the *fs.image.thumbnail.mixin* + class returns now an ordered dictionary where the key is the original image and + the value is a recordset of thumbnail images. The order of the dict is the order + of the images passed to the method. This ensures that when you process the result + of the method you can be sure that the order of the images is the same as the + order of the images passed to the method. (`#282 `_) + Bug Tracker =========== diff --git a/fs_image_thumbnail/__manifest__.py b/fs_image_thumbnail/__manifest__.py index ac56be61ba..718307fe94 100644 --- a/fs_image_thumbnail/__manifest__.py +++ b/fs_image_thumbnail/__manifest__.py @@ -5,7 +5,7 @@ "name": "Fs Image Thumbnail", "summary": """ Generate and store thumbnail for images""", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", "license": "AGPL-3", "author": "ACSONE SA/NV,Odoo Community Association (OCA)", "website": "https://github.com/OCA/storage", diff --git a/fs_image_thumbnail/readme/HISTORY.rst b/fs_image_thumbnail/readme/HISTORY.rst new file mode 100644 index 0000000000..f02120778a --- /dev/null +++ b/fs_image_thumbnail/readme/HISTORY.rst @@ -0,0 +1,11 @@ +16.0.1.0.1 (2023-10-04) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- The call to the method *get_or_create_thumbnails* on the *fs.image.thumbnail.mixin* + class returns now an ordered dictionary where the key is the original image and + the value is a recordset of thumbnail images. The order of the dict is the order + of the images passed to the method. This ensures that when you process the result + of the method you can be sure that the order of the images is the same as the + order of the images passed to the method. (`#282 `_) diff --git a/fs_image_thumbnail/readme/newsfragments/282.bugfix b/fs_image_thumbnail/readme/newsfragments/282.bugfix deleted file mode 100644 index f96616eabf..0000000000 --- a/fs_image_thumbnail/readme/newsfragments/282.bugfix +++ /dev/null @@ -1,6 +0,0 @@ -The call to the method *get_or_create_thumbnails* on the *fs.image.thumbnail.mixin* -class returns now an ordered dictionary where the key is the original image and -the value is a recordset of thumbnail images. The order of the dict is the order -of the images passed to the method. This ensures that when you process the result -of the method you can be sure that the order of the images is the same as the -order of the images passed to the method. diff --git a/fs_image_thumbnail/static/description/index.html b/fs_image_thumbnail/static/description/index.html index 0e75991e04..4b108fcaeb 100644 --- a/fs_image_thumbnail/static/description/index.html +++ b/fs_image_thumbnail/static/description/index.html @@ -367,7 +367,7 @@

Fs Image Thumbnail

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:2870e8b0fff2e9c98e03464d4e19512a1b92c822997d6cd7ca1fd062805d7931 +!! source digest: sha256:3bb3cbeae4c613ddad99937001cf3035bbfc1097e93d97c8d4caf64e941256fe !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Alpha License: AGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

This module extends the fs_image addon to support the creation and the storage of @@ -385,12 +385,16 @@

Fs Image Thumbnail

+
+

Changelog

+
+

16.0.1.0.1 (2023-10-04)

+

Bugfixes

+
    +
  • The call to the method get_or_create_thumbnails on the fs.image.thumbnail.mixin +class returns now an ordered dictionary where the key is the original image and +the value is a recordset of thumbnail images. The order of the dict is the order +of the images passed to the method. This ensures that when you process the result +of the method you can be sure that the order of the images is the same as the +order of the images passed to the method. (#282)
  • +
+
+
-

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 @@ -472,28 +491,28 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • ACSONE SA/NV
-

Other credits

+

Other credits

The development of this module has been financially supported by:

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose From c02783df7077c5839f225b22be6e9887dddc854c Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Fri, 27 Oct 2023 11:46:13 +0000 Subject: [PATCH 10/26] Added translation using Weblate (Spanish) --- fs_image_thumbnail/i18n/es.po | 171 ++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 fs_image_thumbnail/i18n/es.po diff --git a/fs_image_thumbnail/i18n/es.po b/fs_image_thumbnail/i18n/es.po new file mode 100644 index 0000000000..95c09fd30c --- /dev/null +++ b/fs_image_thumbnail/i18n/es.po @@ -0,0 +1,171 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fs_image_thumbnail +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\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_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_ir_attachment +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__attachment_id +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Attachment" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__attachment_id +msgid "Attachment containing the original image" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Base Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_uid +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_thumbnail_search_view +msgid "Created by" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_date +msgid "Created on" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__display_name +msgid "Display Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_fs_image_thumbnail_mixin +msgid "Fs Image Thumbnail Mixin" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.ui.menu,name:fs_image_thumbnail.fs_thumbnail_menu +msgid "Fs Image Thumbnails" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.actions.act_window,name:fs_image_thumbnail.fs_thumbnail_act_window +msgid "Fs Thumbnail" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Group By" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__id +msgid "ID" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__image +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__image +msgid "Image" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_fs_thumbnail +msgid "Image Thumbnail" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update +msgid "Last Modified on" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_date +msgid "Last Updated on" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "MimeType" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__mimetype +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__mimetype +msgid "Mimetype" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__name +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__name +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__original_image +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__original_image +msgid "Original Image" +msgstr "" + +#. module: fs_image_thumbnail +#. odoo-python +#: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 +#, python-format +msgid "The base name must be set when multiple images are given" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__base_name +msgid "The base name of the thumbnail image (without extension)" +msgstr "" + +#. module: fs_image_thumbnail +#. odoo-python +#: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 +#, python-format +msgid "The image %(name)s must be attached to an attachment" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__base_name +msgid "" +"The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . + extension.\n" +"If not set, the base name will be the name of the original image.This base name is used to find all existing thumbnail of an image generated for the same base name." +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view +msgid "Thumbnails" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_x +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_x +msgid "X size" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_y +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_y +msgid "Y size" +msgstr "" From 7cbb0c463ec10af6765b53170e713201abdbdc24 Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Fri, 27 Oct 2023 11:46:55 +0000 Subject: [PATCH 11/26] Translated using Weblate (Spanish) Currently translated at 100.0% (27 of 27 strings) Translation: storage-16.0/storage-16.0-fs_image_thumbnail Translate-URL: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_image_thumbnail/es/ --- fs_image_thumbnail/i18n/es.po | 61 +++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/fs_image_thumbnail/i18n/es.po b/fs_image_thumbnail/i18n/es.po index 95c09fd30c..bad8caae96 100644 --- a/fs_image_thumbnail/i18n/es.po +++ b/fs_image_thumbnail/i18n/es.po @@ -6,13 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2023-10-29 00:15+0000\n" +"Last-Translator: Ivorra78 \n" "Language-Team: none\n" "Language: es\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" +"X-Generator: Weblate 4.17\n" #. module: fs_image_thumbnail #: model:ir.model,name:fs_image_thumbnail.model_ir_attachment @@ -20,129 +22,129 @@ msgstr "" #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__attachment_id #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Attachment" -msgstr "" +msgstr "Archivo Adjunto" #. module: fs_image_thumbnail #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__attachment_id msgid "Attachment containing the original image" -msgstr "" +msgstr "Archivo adjunto con la imagen original" #. module: fs_image_thumbnail #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Base Name" -msgstr "" +msgstr "Nombre de la Base" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_uid #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_thumbnail_search_view msgid "Created by" -msgstr "" +msgstr "Creado por" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_date msgid "Created on" -msgstr "" +msgstr "Creado el" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__display_name msgid "Display Name" -msgstr "" +msgstr "Mostrar Nombre" #. module: fs_image_thumbnail #: model:ir.model,name:fs_image_thumbnail.model_fs_image_thumbnail_mixin msgid "Fs Image Thumbnail Mixin" -msgstr "" +msgstr "Mezcla de Miniaturas de imágenes Fs" #. module: fs_image_thumbnail #: model:ir.ui.menu,name:fs_image_thumbnail.fs_thumbnail_menu msgid "Fs Image Thumbnails" -msgstr "" +msgstr "Miniaturas de imágenes Fs" #. module: fs_image_thumbnail #: model:ir.actions.act_window,name:fs_image_thumbnail.fs_thumbnail_act_window msgid "Fs Thumbnail" -msgstr "" +msgstr "Miniatura Fs" #. module: fs_image_thumbnail #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Group By" -msgstr "" +msgstr "Agrupado Por" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__id msgid "ID" -msgstr "" +msgstr "ID (identificación)" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__image #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__image msgid "Image" -msgstr "" +msgstr "Imagen" #. module: fs_image_thumbnail #: model:ir.model,name:fs_image_thumbnail.model_fs_thumbnail msgid "Image Thumbnail" -msgstr "" +msgstr "Imagen en Miniatura" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update msgid "Last Modified on" -msgstr "" +msgstr "Última Modificación el" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Última Actualización por" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_date msgid "Last Updated on" -msgstr "" +msgstr "Última Actualización el" #. module: fs_image_thumbnail #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "MimeType" -msgstr "" +msgstr "Tipo Mimo" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__mimetype #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__mimetype msgid "Mimetype" -msgstr "" +msgstr "Tipo Mimo" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__name #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__name #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Name" -msgstr "" +msgstr "Nombre" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__original_image #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__original_image msgid "Original Image" -msgstr "" +msgstr "Imagen Original" #. module: fs_image_thumbnail #. odoo-python #: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 #, python-format msgid "The base name must be set when multiple images are given" -msgstr "" +msgstr "El nombre base debe establecerse cuando se dan varias imágenes" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__base_name msgid "The base name of the thumbnail image (without extension)" -msgstr "" +msgstr "El nombre base de la imagen en miniatura (sin extensión)" #. module: fs_image_thumbnail #. odoo-python #: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 #, python-format msgid "The image %(name)s must be attached to an attachment" -msgstr "" +msgstr "La imagen %(name)s debe adjuntarse a un archivo adjunto" #. module: fs_image_thumbnail #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name @@ -151,21 +153,26 @@ msgid "" "The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . + extension.\n" "If not set, the base name will be the name of the original image.This base name is used to find all existing thumbnail of an image generated for the same base name." msgstr "" +"La imagen en miniatura se denominará como nombre_base + _ + tamaño_x + _ + " +"tamaño_y + . + extensión.\n" +"Si no se establece, el nombre base será el nombre de la imagen original. " +"Este nombre base se utiliza para encontrar todas las miniaturas existentes " +"de una imagen generada para el mismo nombre base." #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view msgid "Thumbnails" -msgstr "" +msgstr "Miniaturas" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_x #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_x msgid "X size" -msgstr "" +msgstr "Tamaño X" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_y #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_y msgid "Y size" -msgstr "" +msgstr "Talla Y" From ca5dc50f7f936a10dd4bd3bde5ea155ee2c2af6b Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 28 Nov 2023 06:52:46 +0000 Subject: [PATCH 12/26] Added translation using Weblate (Italian) --- fs_image_thumbnail/i18n/it.po | 171 ++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 fs_image_thumbnail/i18n/it.po diff --git a/fs_image_thumbnail/i18n/it.po b/fs_image_thumbnail/i18n/it.po new file mode 100644 index 0000000000..aeac84c30e --- /dev/null +++ b/fs_image_thumbnail/i18n/it.po @@ -0,0 +1,171 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fs_image_thumbnail +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\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_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_ir_attachment +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__attachment_id +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Attachment" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__attachment_id +msgid "Attachment containing the original image" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Base Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_uid +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_thumbnail_search_view +msgid "Created by" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_date +msgid "Created on" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__display_name +msgid "Display Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_fs_image_thumbnail_mixin +msgid "Fs Image Thumbnail Mixin" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.ui.menu,name:fs_image_thumbnail.fs_thumbnail_menu +msgid "Fs Image Thumbnails" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.actions.act_window,name:fs_image_thumbnail.fs_thumbnail_act_window +msgid "Fs Thumbnail" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Group By" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__id +msgid "ID" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__image +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__image +msgid "Image" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model,name:fs_image_thumbnail.model_fs_thumbnail +msgid "Image Thumbnail" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update +msgid "Last Modified on" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_date +msgid "Last Updated on" +msgstr "" + +#. module: fs_image_thumbnail +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "MimeType" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__mimetype +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__mimetype +msgid "Mimetype" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__name +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__name +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view +msgid "Name" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__original_image +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__original_image +msgid "Original Image" +msgstr "" + +#. module: fs_image_thumbnail +#. odoo-python +#: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 +#, python-format +msgid "The base name must be set when multiple images are given" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__base_name +msgid "The base name of the thumbnail image (without extension)" +msgstr "" + +#. module: fs_image_thumbnail +#. odoo-python +#: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 +#, python-format +msgid "The image %(name)s must be attached to an attachment" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name +#: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__base_name +msgid "" +"The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . + extension.\n" +"If not set, the base name will be the name of the original image.This base name is used to find all existing thumbnail of an image generated for the same base name." +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids +#: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view +msgid "Thumbnails" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_x +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_x +msgid "X size" +msgstr "" + +#. module: fs_image_thumbnail +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_y +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_y +msgid "Y size" +msgstr "" From d073b335d6245dd32df08c5485eccc1640115508 Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 28 Nov 2023 12:21:18 +0000 Subject: [PATCH 13/26] Translated using Weblate (Italian) Currently translated at 100.0% (27 of 27 strings) Translation: storage-16.0/storage-16.0-fs_image_thumbnail Translate-URL: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_image_thumbnail/it/ --- fs_image_thumbnail/i18n/it.po | 61 +++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/fs_image_thumbnail/i18n/it.po b/fs_image_thumbnail/i18n/it.po index aeac84c30e..502eb4b1ae 100644 --- a/fs_image_thumbnail/i18n/it.po +++ b/fs_image_thumbnail/i18n/it.po @@ -6,13 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2023-11-28 14:33+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\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" +"X-Generator: Weblate 4.17\n" #. module: fs_image_thumbnail #: model:ir.model,name:fs_image_thumbnail.model_ir_attachment @@ -20,129 +22,129 @@ msgstr "" #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__attachment_id #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Attachment" -msgstr "" +msgstr "Allegato" #. module: fs_image_thumbnail #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__attachment_id #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__attachment_id msgid "Attachment containing the original image" -msgstr "" +msgstr "Allegato contenente l'immagine originale" #. module: fs_image_thumbnail #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Base Name" -msgstr "" +msgstr "Nome base" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_uid #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_thumbnail_search_view msgid "Created by" -msgstr "" +msgstr "Creato da" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__create_date msgid "Created on" -msgstr "" +msgstr "Creato il" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__display_name msgid "Display Name" -msgstr "" +msgstr "Nome visualizzato" #. module: fs_image_thumbnail #: model:ir.model,name:fs_image_thumbnail.model_fs_image_thumbnail_mixin msgid "Fs Image Thumbnail Mixin" -msgstr "" +msgstr "Mixin anteprima immagine FS" #. module: fs_image_thumbnail #: model:ir.ui.menu,name:fs_image_thumbnail.fs_thumbnail_menu msgid "Fs Image Thumbnails" -msgstr "" +msgstr "Anteprima immagine FS" #. module: fs_image_thumbnail #: model:ir.actions.act_window,name:fs_image_thumbnail.fs_thumbnail_act_window msgid "Fs Thumbnail" -msgstr "" +msgstr "Anteprima FS" #. module: fs_image_thumbnail #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Group By" -msgstr "" +msgstr "Raggruppa per" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__id msgid "ID" -msgstr "" +msgstr "ID" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__image #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__image msgid "Image" -msgstr "" +msgstr "Immgine" #. module: fs_image_thumbnail #: model:ir.model,name:fs_image_thumbnail.model_fs_thumbnail msgid "Image Thumbnail" -msgstr "" +msgstr "Anteprima immagine" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update msgid "Last Modified on" -msgstr "" +msgstr "Ultima modifica il" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Ultimo aggiornamento di" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_date msgid "Last Updated on" -msgstr "" +msgstr "Ultimo aggiornamento il" #. module: fs_image_thumbnail #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "MimeType" -msgstr "" +msgstr "Tipo MIME" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__mimetype #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__mimetype msgid "Mimetype" -msgstr "" +msgstr "Tipo MIME" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__name #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__name #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.fs_image_thumbnail_mixin_search_view msgid "Name" -msgstr "" +msgstr "Nome" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__original_image #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__original_image msgid "Original Image" -msgstr "" +msgstr "Immagine originale" #. module: fs_image_thumbnail #. odoo-python #: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 #, python-format msgid "The base name must be set when multiple images are given" -msgstr "" +msgstr "Il nome base deve essere impostato qando vengono fornite più immagini" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__base_name msgid "The base name of the thumbnail image (without extension)" -msgstr "" +msgstr "Il nome base dell'immagIne anteprima (senza estensione)" #. module: fs_image_thumbnail #. odoo-python #: code:addons/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py:0 #, python-format msgid "The image %(name)s must be attached to an attachment" -msgstr "" +msgstr "L'immagine %(name)s deve essere collegata ad una allegato" #. module: fs_image_thumbnail #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name @@ -151,21 +153,26 @@ msgid "" "The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . + extension.\n" "If not set, the base name will be the name of the original image.This base name is used to find all existing thumbnail of an image generated for the same base name." msgstr "" +"L'immagine anteprima verrà denominata come " +"nome_bae+_+dimensione_x+dimensione_y+.+estensione.\n" +"Se non impostato, il nome base sarà il nome dell'immagine originale. Questo " +"nome base è utilizzato per trovare tutte le anteprime di una immagine " +"generate per lo stesso nome base." #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view msgid "Thumbnails" -msgstr "" +msgstr "Anteprime" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_x #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_x msgid "X size" -msgstr "" +msgstr "Dimensione X" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__size_y #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_y msgid "Y size" -msgstr "" +msgstr "Dimensione Y" From a093527b2e28ede7a6b4093574fbbd2d8a5db540 Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 12 Dec 2023 08:40:38 +0000 Subject: [PATCH 14/26] Translated using Weblate (Italian) Currently translated at 100.0% (27 of 27 strings) Translation: storage-16.0/storage-16.0-fs_image_thumbnail Translate-URL: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_image_thumbnail/it/ --- fs_image_thumbnail/i18n/it.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs_image_thumbnail/i18n/it.po b/fs_image_thumbnail/i18n/it.po index 502eb4b1ae..b03afa19b2 100644 --- a/fs_image_thumbnail/i18n/it.po +++ b/fs_image_thumbnail/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-28 14:33+0000\n" +"PO-Revision-Date: 2023-12-12 11:33+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -80,7 +80,7 @@ msgstr "ID" #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_image_thumbnail_mixin__image #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__image msgid "Image" -msgstr "Immgine" +msgstr "Immagine" #. module: fs_image_thumbnail #: model:ir.model,name:fs_image_thumbnail.model_fs_thumbnail From 4a9b77175edf775dc705ad4dcb9e03be13cf11f4 Mon Sep 17 00:00:00 2001 From: sbejaoui Date: Mon, 19 Feb 2024 14:01:28 +0100 Subject: [PATCH 15/26] [FIX] delete FsImageThumbnail on attachment delete --- fs_image_thumbnail/models/fs_image_thumbnail_mixin.py | 1 + 1 file changed, 1 insertion(+) diff --git a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py index af59f0b88d..ab13a9c9f5 100644 --- a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py +++ b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py @@ -39,6 +39,7 @@ class FsImageThumbnailMixin(models.AbstractModel): string="Attachment", help="Attachment containing the original image", required=True, + ondelete="cascade", ) name = fields.Char( compute="_compute_name", From a6e01ec2877115734ec95373369fb0f090c3c75f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 20 Feb 2024 08:56:34 +0000 Subject: [PATCH 16/26] [BOT] post-merge updates --- fs_image_thumbnail/README.rst | 2 +- fs_image_thumbnail/__manifest__.py | 2 +- fs_image_thumbnail/static/description/index.html | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/fs_image_thumbnail/README.rst b/fs_image_thumbnail/README.rst index 2a3b987440..157c1fac93 100644 --- a/fs_image_thumbnail/README.rst +++ b/fs_image_thumbnail/README.rst @@ -7,7 +7,7 @@ Fs Image Thumbnail !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:3bb3cbeae4c613ddad99937001cf3035bbfc1097e93d97c8d4caf64e941256fe + !! source digest: sha256:ae84af058fd490c7c8916156dc7db31813b6d5f7535e722740b152d6955e0d57 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png diff --git a/fs_image_thumbnail/__manifest__.py b/fs_image_thumbnail/__manifest__.py index 718307fe94..6f0b67c173 100644 --- a/fs_image_thumbnail/__manifest__.py +++ b/fs_image_thumbnail/__manifest__.py @@ -5,7 +5,7 @@ "name": "Fs Image Thumbnail", "summary": """ Generate and store thumbnail for images""", - "version": "16.0.1.0.1", + "version": "16.0.1.0.2", "license": "AGPL-3", "author": "ACSONE SA/NV,Odoo Community Association (OCA)", "website": "https://github.com/OCA/storage", diff --git a/fs_image_thumbnail/static/description/index.html b/fs_image_thumbnail/static/description/index.html index 4b108fcaeb..f02ae6037d 100644 --- a/fs_image_thumbnail/static/description/index.html +++ b/fs_image_thumbnail/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

Fs Image Thumbnail

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:3bb3cbeae4c613ddad99937001cf3035bbfc1097e93d97c8d4caf64e941256fe +!! source digest: sha256:ae84af058fd490c7c8916156dc7db31813b6d5f7535e722740b152d6955e0d57 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Alpha License: AGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

This module extends the fs_image addon to support the creation and the storage of From d9954d72c2b5e2ccd96fc8011c07e30cab0a0da7 Mon Sep 17 00:00:00 2001 From: chien Date: Wed, 28 Feb 2024 11:56:56 +0700 Subject: [PATCH 17/26] [IMP] fs_image_thumbnail: pre-commit auto fixes --- fs_image_thumbnail/README.rst | 155 +++++++++--------- .../models/fs_image_thumbnail_mixin.py | 2 +- fs_image_thumbnail/models/fs_thumbnail.py | 1 - fs_image_thumbnail/models/ir_attachment.py | 1 - fs_image_thumbnail/pyproject.toml | 3 + fs_image_thumbnail/readme/CONTEXT.md | 20 +++ fs_image_thumbnail/readme/CONTEXT.rst | 17 -- fs_image_thumbnail/readme/CONTRIBUTORS.md | 1 + fs_image_thumbnail/readme/CONTRIBUTORS.rst | 1 - .../readme/{CREDITS.rst => CREDITS.md} | 2 +- fs_image_thumbnail/readme/DESCRIPTION.md | 4 + fs_image_thumbnail/readme/DESCRIPTION.rst | 4 - fs_image_thumbnail/readme/HISTORY.md | 12 ++ fs_image_thumbnail/readme/HISTORY.rst | 11 -- fs_image_thumbnail/readme/USAGE.md | 56 +++++++ fs_image_thumbnail/readme/USAGE.rst | 57 ------- 16 files changed, 177 insertions(+), 170 deletions(-) create mode 100644 fs_image_thumbnail/pyproject.toml create mode 100644 fs_image_thumbnail/readme/CONTEXT.md delete mode 100644 fs_image_thumbnail/readme/CONTEXT.rst create mode 100644 fs_image_thumbnail/readme/CONTRIBUTORS.md delete mode 100644 fs_image_thumbnail/readme/CONTRIBUTORS.rst rename fs_image_thumbnail/readme/{CREDITS.rst => CREDITS.md} (58%) create mode 100644 fs_image_thumbnail/readme/DESCRIPTION.md delete mode 100644 fs_image_thumbnail/readme/DESCRIPTION.rst create mode 100644 fs_image_thumbnail/readme/HISTORY.md delete mode 100644 fs_image_thumbnail/readme/HISTORY.rst create mode 100644 fs_image_thumbnail/readme/USAGE.md delete mode 100644 fs_image_thumbnail/readme/USAGE.rst diff --git a/fs_image_thumbnail/README.rst b/fs_image_thumbnail/README.rst index 157c1fac93..6381166810 100644 --- a/fs_image_thumbnail/README.rst +++ b/fs_image_thumbnail/README.rst @@ -17,21 +17,21 @@ Fs Image Thumbnail :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstorage-lightgray.png?logo=github - :target: https://github.com/OCA/storage/tree/16.0/fs_image_thumbnail + :target: https://github.com/OCA/storage/tree/17.0/fs_image_thumbnail :alt: OCA/storage .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_image_thumbnail + :target: https://translation.odoo-community.org/projects/storage-17-0/storage-17-0-fs_image_thumbnail :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=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/storage&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module extends the **fs_image** addon to support the creation and the storage of -thumbnails for images. This module is a **technical module** and is not -meant to be installed by end-users. It only provides a mixin to be used -by other modules and a model to store the thumbnails. +This module extends the **fs_image** addon to support the creation and +the storage of thumbnails for images. This module is a **technical +module** and is not meant to be installed by end-users. It only provides +a mixin to be used by other modules and a model to store the thumbnails. .. IMPORTANT:: This is an alpha version, the data model and design can change at any time without warning. @@ -46,99 +46,102 @@ by other modules and a model to store the thumbnails. Use Cases / Context =================== -In some specific cases you may need to generate and store thumbnails of images in Odoo. -This is the case for example when you want to provide image in specific sizes for a website -or a mobile application. +In some specific cases you may need to generate and store thumbnails of +images in Odoo. This is the case for example when you want to provide +image in specific sizes for a website or a mobile application. -This module provides a generic way to generate thumbnails of images and store them in a -specific filesystem storage. Indeed, you could need to store the thumbnails in a different -storage than the original image (eg: store the thumbnails in a CDN) to make sure the -thumbnails are served quickly when requested by an external application and to -avoid to expose the original image storage. +This module provides a generic way to generate thumbnails of images and +store them in a specific filesystem storage. Indeed, you could need to +store the thumbnails in a different storage than the original image (eg: +store the thumbnails in a CDN) to make sure the thumbnails are served +quickly when requested by an external application and to avoid to expose +the original image storage. -This module uses the `fs_image `_ +This module uses the +`fs_image `__ module to store the thumbnails in a filesystem storage. -The `shopinvader_product_image `_ addon uses this module to generate and -store the thumbnails of the images of the products and categories to be accessible -by the website. +The `shopinvader_product_image +< <>`__\ https://github.com/shopinvader/odoo-shopinvader/\ `blob/16.0/shopinvader_product_image> <>`__ +addon uses this module to generate and store the thumbnails of the +images of the products and categories to be accessible by the website. Usage ===== -This addon provides a convenient way to get and create if not exists image -thumbnails. All the logic is implemented by the abstract model -`fs.image.thumbnail.mixin`. The main method is `get_or_create_thumbnails` which -accepts a *FSImageValue* instance, a list of thumbnail sizes and a base name. +This addon provides a convenient way to get and create if not exists +image thumbnails. All the logic is implemented by the abstract model +fs.image.thumbnail.mixin. The main method is get_or_create_thumbnails +which accepts a *FSImageValue* instance, a list of thumbnail sizes and a +base name. -When the method is called, it will check if the thumbnail exists for the given -sizes and base name. If not, it will create it. +When the method is called, it will check if the thumbnail exists for the +given sizes and base name. If not, it will create it. -The `fs.thumbnail` model provided by this addon is a concrete implementation of -the abstract model `fs.image.thumbnail.mixin`. The motivation to implement all the -logic in an abstract model is to allow developers to create their own thumbnail -models. This could be useful if you want to store the thumbnails in a different -storage since you can specify the storage to use by model on the `fs.storage` -form view. +The fs.thumbnail model provided by this addon is a concrete +implementation of the abstract model fs.image.thumbnail.mixin. The +motivation to implement all the logic in an abstract model is to allow +developers to create their own thumbnail models. This could be useful if +you want to store the thumbnails in a different storage since you can +specify the storage to use by model on the fs.storage form view. Creating / retrieving thumbnails is as simple as: -.. code-block:: python +.. code:: python - from odoo.addons.fs_image.fields import FSImageValue + from odoo.addons.fs_image.fields import FSImageValue - # create an attachment with a image file - attachment = self.env['ir.attachment'].create({ - 'name': 'test', - 'datas': base64.b64encode(open('test.png', 'rb').read()), - 'datas_fname': 'test.png', - }) + # create an attachment with a image file + attachment = self.env['ir.attachment'].create({ + 'name': 'test', + 'datas': base64.b64encode(open('test.png', 'rb').read()), + 'datas_fname': 'test.png', + }) - # create a FSImageValue instance for the attachment - image_value = FSImageValue(attachment) + # create a FSImageValue instance for the attachment + image_value = FSImageValue(attachment) - # get or create the thumbnails - thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails( - image_value, [(800,600), (400, 200)], 'my base name') + # get or create the thumbnails + thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails( + image_value, [(800,600), (400, 200)], 'my base name') +If you've a model with a *FSImage* field, the call to +get_or_create_thumbnails is even simpler: +.. code:: python -If you've a model with a *FSImage* field, the call to `get_or_create_thumbnails` -is even simpler: + from odoo import models + from odoo.addons.fs_image.fields import FSImage -.. code-block:: python + class MyModel(models.Model): + _name = 'my.model' - from odoo import models - from odoo.addons.fs_image.fields import FSImage + image = FSImage('Image') - class MyModel(models.Model): - _name = 'my.model' + my_record = cls.env['my.model'].create({ + 'image': open('test.png', 'rb'), + }) - image = FSImage('Image') - - my_record = cls.env['my.model'].create({ - 'image': open('test.png', 'rb'), - }) - - # get or create the thumbnails - thumbnails = record.image.get_or_create_thumbnails(my_record.image, - [(800,600), (400, 200)], 'my base name') + # get or create the thumbnails + thumbnails = record.image.get_or_create_thumbnails(my_record.image, + [(800,600), (400, 200)], 'my base name') Changelog ========= 16.0.1.0.1 (2023-10-04) -~~~~~~~~~~~~~~~~~~~~~~~ +----------------------- **Bugfixes** -- The call to the method *get_or_create_thumbnails* on the *fs.image.thumbnail.mixin* - class returns now an ordered dictionary where the key is the original image and - the value is a recordset of thumbnail images. The order of the dict is the order - of the images passed to the method. This ensures that when you process the result - of the method you can be sure that the order of the images is the same as the - order of the images passed to the method. (`#282 `_) +- The call to the method *get_or_create_thumbnails* on the + *fs.image.thumbnail.mixin* class returns now an ordered dictionary + where the key is the original image and the value is a recordset of + thumbnail images. The order of the dict is the order of the images + passed to the method. This ensures that when you process the result + of the method you can be sure that the order of the images is the + same as the order of the images passed to the method. + (`#282 `__) Bug Tracker =========== @@ -146,7 +149,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. @@ -154,24 +157,24 @@ Credits ======= Authors -~~~~~~~ +------- * ACSONE SA/NV Contributors -~~~~~~~~~~~~ +------------ -* Laurent Mignon (https://acsone.eu) +- Laurent Mignon (https://acsone.eu) Other credits -~~~~~~~~~~~~~ +------------- The development of this module has been financially supported by: -* `Alcyon Belux `_ +- `Alcyon Belux `__ Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -191,6 +194,6 @@ Current `maintainer `__: |maintainer-lmignon| -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/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py index ab13a9c9f5..f4124b6a89 100644 --- a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py +++ b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py @@ -188,7 +188,7 @@ def get_or_create_thumbnails( self, *images: tuple[FSImageValue], sizes: list[tuple[int, int]], - base_name: str = "" + base_name: str = "", ) -> OrderedDict[FSImageValue, list["FsImageThumbnailMixin"]]: """Get or create a thumbnail images from the given image. diff --git a/fs_image_thumbnail/models/fs_thumbnail.py b/fs_image_thumbnail/models/fs_thumbnail.py index bf2df3d097..462fa46e2f 100644 --- a/fs_image_thumbnail/models/fs_thumbnail.py +++ b/fs_image_thumbnail/models/fs_thumbnail.py @@ -5,7 +5,6 @@ class FsThumbnail(models.Model): - _name = "fs.thumbnail" _inherit = "fs.image.thumbnail.mixin" _description = "Image Thumbnail" diff --git a/fs_image_thumbnail/models/ir_attachment.py b/fs_image_thumbnail/models/ir_attachment.py index 23116ecb9b..849c2d4a20 100644 --- a/fs_image_thumbnail/models/ir_attachment.py +++ b/fs_image_thumbnail/models/ir_attachment.py @@ -5,7 +5,6 @@ class IrAttachment(models.Model): - _inherit = "ir.attachment" thumbnail_ids = fields.One2many( diff --git a/fs_image_thumbnail/pyproject.toml b/fs_image_thumbnail/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/fs_image_thumbnail/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/fs_image_thumbnail/readme/CONTEXT.md b/fs_image_thumbnail/readme/CONTEXT.md new file mode 100644 index 0000000000..9e1fc8726f --- /dev/null +++ b/fs_image_thumbnail/readme/CONTEXT.md @@ -0,0 +1,20 @@ +In some specific cases you may need to generate and store thumbnails of +images in Odoo. This is the case for example when you want to provide +image in specific sizes for a website or a mobile application. + +This module provides a generic way to generate thumbnails of images and +store them in a specific filesystem storage. Indeed, you could need to +store the thumbnails in a different storage than the original image (eg: +store the thumbnails in a CDN) to make sure the thumbnails are served +quickly when requested by an external application and to avoid to expose +the original image storage. + +This module uses the +[fs_image](https://github.com/oca/storage/blob/16.0/fs_image/README.rst) +module to store the thumbnails in a filesystem storage. + +The [shopinvader_product_image +\]() addon uses this module to +generate and store the thumbnails of the images of the products and +categories to be accessible by the website. diff --git a/fs_image_thumbnail/readme/CONTEXT.rst b/fs_image_thumbnail/readme/CONTEXT.rst deleted file mode 100644 index 4c7e0559ac..0000000000 --- a/fs_image_thumbnail/readme/CONTEXT.rst +++ /dev/null @@ -1,17 +0,0 @@ -In some specific cases you may need to generate and store thumbnails of images in Odoo. -This is the case for example when you want to provide image in specific sizes for a website -or a mobile application. - -This module provides a generic way to generate thumbnails of images and store them in a -specific filesystem storage. Indeed, you could need to store the thumbnails in a different -storage than the original image (eg: store the thumbnails in a CDN) to make sure the -thumbnails are served quickly when requested by an external application and to -avoid to expose the original image storage. - -This module uses the `fs_image `_ -module to store the thumbnails in a filesystem storage. - -The `shopinvader_product_image `_ addon uses this module to generate and -store the thumbnails of the images of the products and categories to be accessible -by the website. diff --git a/fs_image_thumbnail/readme/CONTRIBUTORS.md b/fs_image_thumbnail/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..05e5563b81 --- /dev/null +++ b/fs_image_thumbnail/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Laurent Mignon \<\> () diff --git a/fs_image_thumbnail/readme/CONTRIBUTORS.rst b/fs_image_thumbnail/readme/CONTRIBUTORS.rst deleted file mode 100644 index 1480ca2b76..0000000000 --- a/fs_image_thumbnail/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* Laurent Mignon (https://acsone.eu) diff --git a/fs_image_thumbnail/readme/CREDITS.rst b/fs_image_thumbnail/readme/CREDITS.md similarity index 58% rename from fs_image_thumbnail/readme/CREDITS.rst rename to fs_image_thumbnail/readme/CREDITS.md index 82c081d258..77743cd65f 100644 --- a/fs_image_thumbnail/readme/CREDITS.rst +++ b/fs_image_thumbnail/readme/CREDITS.md @@ -1,3 +1,3 @@ The development of this module has been financially supported by: -* `Alcyon Belux `_ +- [Alcyon Belux](https://www.alcyonbelux.be/) diff --git a/fs_image_thumbnail/readme/DESCRIPTION.md b/fs_image_thumbnail/readme/DESCRIPTION.md new file mode 100644 index 0000000000..39466d487b --- /dev/null +++ b/fs_image_thumbnail/readme/DESCRIPTION.md @@ -0,0 +1,4 @@ +This module extends the **fs_image** addon to support the creation and +the storage of thumbnails for images. This module is a **technical +module** and is not meant to be installed by end-users. It only provides +a mixin to be used by other modules and a model to store the thumbnails. diff --git a/fs_image_thumbnail/readme/DESCRIPTION.rst b/fs_image_thumbnail/readme/DESCRIPTION.rst deleted file mode 100644 index 6ce408a456..0000000000 --- a/fs_image_thumbnail/readme/DESCRIPTION.rst +++ /dev/null @@ -1,4 +0,0 @@ -This module extends the **fs_image** addon to support the creation and the storage of -thumbnails for images. This module is a **technical module** and is not -meant to be installed by end-users. It only provides a mixin to be used -by other modules and a model to store the thumbnails. diff --git a/fs_image_thumbnail/readme/HISTORY.md b/fs_image_thumbnail/readme/HISTORY.md new file mode 100644 index 0000000000..23dc6efaf0 --- /dev/null +++ b/fs_image_thumbnail/readme/HISTORY.md @@ -0,0 +1,12 @@ +## 16.0.1.0.1 (2023-10-04) + +**Bugfixes** + +- The call to the method *get_or_create_thumbnails* on the + *fs.image.thumbnail.mixin* class returns now an ordered dictionary + where the key is the original image and the value is a recordset of + thumbnail images. The order of the dict is the order of the images + passed to the method. This ensures that when you process the result of + the method you can be sure that the order of the images is the same as + the order of the images passed to the method. + ([\#282](https://github.com/OCA/storage/issues/282)) diff --git a/fs_image_thumbnail/readme/HISTORY.rst b/fs_image_thumbnail/readme/HISTORY.rst deleted file mode 100644 index f02120778a..0000000000 --- a/fs_image_thumbnail/readme/HISTORY.rst +++ /dev/null @@ -1,11 +0,0 @@ -16.0.1.0.1 (2023-10-04) -~~~~~~~~~~~~~~~~~~~~~~~ - -**Bugfixes** - -- The call to the method *get_or_create_thumbnails* on the *fs.image.thumbnail.mixin* - class returns now an ordered dictionary where the key is the original image and - the value is a recordset of thumbnail images. The order of the dict is the order - of the images passed to the method. This ensures that when you process the result - of the method you can be sure that the order of the images is the same as the - order of the images passed to the method. (`#282 `_) diff --git a/fs_image_thumbnail/readme/USAGE.md b/fs_image_thumbnail/readme/USAGE.md new file mode 100644 index 0000000000..46ae7e1ea4 --- /dev/null +++ b/fs_image_thumbnail/readme/USAGE.md @@ -0,0 +1,56 @@ +This addon provides a convenient way to get and create if not exists +image thumbnails. All the logic is implemented by the abstract model +fs.image.thumbnail.mixin. The main method is get_or_create_thumbnails +which accepts a *FSImageValue* instance, a list of thumbnail sizes and a +base name. + +When the method is called, it will check if the thumbnail exists for the +given sizes and base name. If not, it will create it. + +The fs.thumbnail model provided by this addon is a concrete +implementation of the abstract model fs.image.thumbnail.mixin. The +motivation to implement all the logic in an abstract model is to allow +developers to create their own thumbnail models. This could be useful if +you want to store the thumbnails in a different storage since you can +specify the storage to use by model on the fs.storage form view. + +Creating / retrieving thumbnails is as simple as: + +``` python +from odoo.addons.fs_image.fields import FSImageValue + +# create an attachment with a image file +attachment = self.env['ir.attachment'].create({ + 'name': 'test', + 'datas': base64.b64encode(open('test.png', 'rb').read()), + 'datas_fname': 'test.png', +}) + +# create a FSImageValue instance for the attachment +image_value = FSImageValue(attachment) + +# get or create the thumbnails +thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails( + image_value, [(800,600), (400, 200)], 'my base name') +``` + +If you've a model with a *FSImage* field, the call to +get_or_create_thumbnails is even simpler: + +``` python +from odoo import models +from odoo.addons.fs_image.fields import FSImage + +class MyModel(models.Model): + _name = 'my.model' + + image = FSImage('Image') + +my_record = cls.env['my.model'].create({ + 'image': open('test.png', 'rb'), +}) + +# get or create the thumbnails +thumbnails = record.image.get_or_create_thumbnails(my_record.image, + [(800,600), (400, 200)], 'my base name') +``` diff --git a/fs_image_thumbnail/readme/USAGE.rst b/fs_image_thumbnail/readme/USAGE.rst deleted file mode 100644 index 4a539166fe..0000000000 --- a/fs_image_thumbnail/readme/USAGE.rst +++ /dev/null @@ -1,57 +0,0 @@ -This addon provides a convenient way to get and create if not exists image -thumbnails. All the logic is implemented by the abstract model -`fs.image.thumbnail.mixin`. The main method is `get_or_create_thumbnails` which -accepts a *FSImageValue* instance, a list of thumbnail sizes and a base name. - -When the method is called, it will check if the thumbnail exists for the given -sizes and base name. If not, it will create it. - -The `fs.thumbnail` model provided by this addon is a concrete implementation of -the abstract model `fs.image.thumbnail.mixin`. The motivation to implement all the -logic in an abstract model is to allow developers to create their own thumbnail -models. This could be useful if you want to store the thumbnails in a different -storage since you can specify the storage to use by model on the `fs.storage` -form view. - -Creating / retrieving thumbnails is as simple as: - -.. code-block:: python - - from odoo.addons.fs_image.fields import FSImageValue - - # create an attachment with a image file - attachment = self.env['ir.attachment'].create({ - 'name': 'test', - 'datas': base64.b64encode(open('test.png', 'rb').read()), - 'datas_fname': 'test.png', - }) - - # create a FSImageValue instance for the attachment - image_value = FSImageValue(attachment) - - # get or create the thumbnails - thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails( - image_value, [(800,600), (400, 200)], 'my base name') - - - -If you've a model with a *FSImage* field, the call to `get_or_create_thumbnails` -is even simpler: - -.. code-block:: python - - from odoo import models - from odoo.addons.fs_image.fields import FSImage - - class MyModel(models.Model): - _name = 'my.model' - - image = FSImage('Image') - - my_record = cls.env['my.model'].create({ - 'image': open('test.png', 'rb'), - }) - - # get or create the thumbnails - thumbnails = record.image.get_or_create_thumbnails(my_record.image, - [(800,600), (400, 200)], 'my base name') From aad32e80fcf7a958d8348214a129d4c4b9052721 Mon Sep 17 00:00:00 2001 From: chien Date: Wed, 28 Feb 2024 15:27:05 +0700 Subject: [PATCH 18/26] [MIG] fs_image_thumbnail: Migration to 17.0 --- fs_image_thumbnail/README.rst | 4 +- fs_image_thumbnail/__manifest__.py | 2 +- .../i18n/fs_image_thumbnail.pot | 8 +- .../models/fs_image_thumbnail_mixin.py | 6 +- fs_image_thumbnail/readme/CONTEXT.md | 8 +- .../static/description/index.html | 84 ++++++++++--------- .../tests/test_fs_image_thumbnail.py | 3 +- fs_image_thumbnail/views/fs_thumbnail.xml | 2 +- 8 files changed, 59 insertions(+), 58 deletions(-) diff --git a/fs_image_thumbnail/README.rst b/fs_image_thumbnail/README.rst index 6381166810..41db42c20b 100644 --- a/fs_image_thumbnail/README.rst +++ b/fs_image_thumbnail/README.rst @@ -61,8 +61,8 @@ This module uses the `fs_image `__ module to store the thumbnails in a filesystem storage. -The `shopinvader_product_image -< <>`__\ https://github.com/shopinvader/odoo-shopinvader/\ `blob/16.0/shopinvader_product_image> <>`__ +The +`shopinvader_product_image `__ addon uses this module to generate and store the thumbnails of the images of the products and categories to be accessible by the website. diff --git a/fs_image_thumbnail/__manifest__.py b/fs_image_thumbnail/__manifest__.py index 6f0b67c173..983a4feb61 100644 --- a/fs_image_thumbnail/__manifest__.py +++ b/fs_image_thumbnail/__manifest__.py @@ -5,7 +5,7 @@ "name": "Fs Image Thumbnail", "summary": """ Generate and store thumbnail for images""", - "version": "16.0.1.0.2", + "version": "17.0.1.0.0", "license": "AGPL-3", "author": "ACSONE SA/NV,Odoo Community Association (OCA)", "website": "https://github.com/OCA/storage", diff --git a/fs_image_thumbnail/i18n/fs_image_thumbnail.pot b/fs_image_thumbnail/i18n/fs_image_thumbnail.pot index 6c712d97e7..3ed95f232a 100644 --- a/fs_image_thumbnail/i18n/fs_image_thumbnail.pot +++ b/fs_image_thumbnail/i18n/fs_image_thumbnail.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -84,11 +84,6 @@ msgstr "" msgid "Image Thumbnail" msgstr "" -#. module: fs_image_thumbnail -#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update -msgid "Last Modified on" -msgstr "" - #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid msgid "Last Updated by" @@ -153,6 +148,7 @@ msgstr "" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_product_document__thumbnail_ids #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view msgid "Thumbnails" msgstr "" diff --git a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py index f4124b6a89..eac28b3b08 100644 --- a/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py +++ b/fs_image_thumbnail/models/fs_image_thumbnail_mixin.py @@ -102,7 +102,7 @@ def _get_resize_format(self, image: FSImage) -> str: return fmt or image.extension @api.model - def _prepare_tumbnail( + def _prepare_thumbnail( self, image: FSImage, size_x: int, size_y: int, base_name: str ) -> dict: """Prepare the values to create a thumbnail image from the given image. @@ -121,7 +121,7 @@ def _prepare_tumbnail( extension = "." + extension new_image = FSImageValue( value=self._resize(image, size_x, size_y, fmt), - name="%s_%s_%s%s" % (base_name, size_x, size_y, extension), + name=f"{base_name}_{size_x}_{size_y}{extension}", alt_text=image.alt_text, ) return { @@ -214,7 +214,7 @@ def get_or_create_thumbnails( for size_x, size_y in sizes: thumbnail = thumbnails_by_size.get((size_x, size_y)) if not thumbnail: - values = self._prepare_tumbnail(image, size_x, size_y, base_name) + values = self._prepare_thumbnail(image, size_x, size_y, base_name) # no creation possible outside of this method -> sudo() is # required since no access rights defined on create thumbnail = self.sudo().create(values) diff --git a/fs_image_thumbnail/readme/CONTEXT.md b/fs_image_thumbnail/readme/CONTEXT.md index 9e1fc8726f..3ffc22bee9 100644 --- a/fs_image_thumbnail/readme/CONTEXT.md +++ b/fs_image_thumbnail/readme/CONTEXT.md @@ -13,8 +13,6 @@ This module uses the [fs_image](https://github.com/oca/storage/blob/16.0/fs_image/README.rst) module to store the thumbnails in a filesystem storage. -The [shopinvader_product_image -\]() addon uses this module to -generate and store the thumbnails of the images of the products and -categories to be accessible by the website. +The [shopinvader_product_image](https://github.com/shopinvader/odoo-shopinvader/blob/16.0/shopinvader_product_image) addon uses this module to generate and store +the thumbnails of the images of the products and categories to be +accessible by the website. diff --git a/fs_image_thumbnail/static/description/index.html b/fs_image_thumbnail/static/description/index.html index f02ae6037d..cc3af6f013 100644 --- a/fs_image_thumbnail/static/description/index.html +++ b/fs_image_thumbnail/static/description/index.html @@ -368,11 +368,11 @@

Fs Image Thumbnail

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:ae84af058fd490c7c8916156dc7db31813b6d5f7535e722740b152d6955e0d57 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Alpha License: AGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

-

This module extends the fs_image addon to support the creation and the storage of -thumbnails for images. This module is a technical module and is not -meant to be installed by end-users. It only provides a mixin to be used -by other modules and a model to store the thumbnails.

+

Alpha License: AGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

+

This module extends the fs_image addon to support the creation and +the storage of thumbnails for images. This module is a technical +module and is not meant to be installed by end-users. It only provides +a mixin to be used by other modules and a model to store the thumbnails.

Important

This is an alpha version, the data model and design can change at any time without warning. @@ -400,34 +400,38 @@

Fs Image Thumbnail

Use Cases / Context

-

In some specific cases you may need to generate and store thumbnails of images in Odoo. -This is the case for example when you want to provide image in specific sizes for a website -or a mobile application.

-

This module provides a generic way to generate thumbnails of images and store them in a -specific filesystem storage. Indeed, you could need to store the thumbnails in a different -storage than the original image (eg: store the thumbnails in a CDN) to make sure the -thumbnails are served quickly when requested by an external application and to -avoid to expose the original image storage.

-

This module uses the fs_image +

In some specific cases you may need to generate and store thumbnails of +images in Odoo. This is the case for example when you want to provide +image in specific sizes for a website or a mobile application.

+

This module provides a generic way to generate thumbnails of images and +store them in a specific filesystem storage. Indeed, you could need to +store the thumbnails in a different storage than the original image (eg: +store the thumbnails in a CDN) to make sure the thumbnails are served +quickly when requested by an external application and to avoid to expose +the original image storage.

+

This module uses the +fs_image module to store the thumbnails in a filesystem storage.

-

The shopinvader_product_image addon uses this module to generate and -store the thumbnails of the images of the products and categories to be accessible -by the website.

+

The +shopinvader_product_image +addon uses this module to generate and store the thumbnails of the +images of the products and categories to be accessible by the website.

Usage

-

This addon provides a convenient way to get and create if not exists image -thumbnails. All the logic is implemented by the abstract model -fs.image.thumbnail.mixin. The main method is get_or_create_thumbnails which -accepts a FSImageValue instance, a list of thumbnail sizes and a base name.

-

When the method is called, it will check if the thumbnail exists for the given -sizes and base name. If not, it will create it.

-

The fs.thumbnail model provided by this addon is a concrete implementation of -the abstract model fs.image.thumbnail.mixin. The motivation to implement all the -logic in an abstract model is to allow developers to create their own thumbnail -models. This could be useful if you want to store the thumbnails in a different -storage since you can specify the storage to use by model on the fs.storage -form view.

+

This addon provides a convenient way to get and create if not exists +image thumbnails. All the logic is implemented by the abstract model +fs.image.thumbnail.mixin. The main method is get_or_create_thumbnails +which accepts a FSImageValue instance, a list of thumbnail sizes and a +base name.

+

When the method is called, it will check if the thumbnail exists for the +given sizes and base name. If not, it will create it.

+

The fs.thumbnail model provided by this addon is a concrete +implementation of the abstract model fs.image.thumbnail.mixin. The +motivation to implement all the logic in an abstract model is to allow +developers to create their own thumbnail models. This could be useful if +you want to store the thumbnails in a different storage since you can +specify the storage to use by model on the fs.storage form view.

Creating / retrieving thumbnails is as simple as:

 from odoo.addons.fs_image.fields import FSImageValue
@@ -446,8 +450,8 @@ 

Usage

thumbnails = self.env['fs.thumbnail'].get_or_create_thumbnails( image_value, [(800,600), (400, 200)], 'my base name')
-

If you’ve a model with a FSImage field, the call to get_or_create_thumbnails -is even simpler:

+

If you’ve a model with a FSImage field, the call to +get_or_create_thumbnails is even simpler:

 from odoo import models
 from odoo.addons.fs_image.fields import FSImage
@@ -472,12 +476,14 @@ 

Changelog

16.0.1.0.1 (2023-10-04)

Bugfixes

    -
  • The call to the method get_or_create_thumbnails on the fs.image.thumbnail.mixin -class returns now an ordered dictionary where the key is the original image and -the value is a recordset of thumbnail images. The order of the dict is the order -of the images passed to the method. This ensures that when you process the result -of the method you can be sure that the order of the images is the same as the -order of the images passed to the method. (#282)
  • +
  • The call to the method get_or_create_thumbnails on the +fs.image.thumbnail.mixin class returns now an ordered dictionary +where the key is the original image and the value is a recordset of +thumbnail images. The order of the dict is the order of the images +passed to the method. This ensures that when you process the result +of the method you can be sure that the order of the images is the +same as the order of the images passed to the method. +(#282)
@@ -486,7 +492,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.

@@ -519,7 +525,7 @@

Maintainers

promote its widespread use.

Current maintainer:

lmignon

-

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/fs_image_thumbnail/tests/test_fs_image_thumbnail.py b/fs_image_thumbnail/tests/test_fs_image_thumbnail.py index 3caa4b5265..1f425f1059 100644 --- a/fs_image_thumbnail/tests/test_fs_image_thumbnail.py +++ b/fs_image_thumbnail/tests/test_fs_image_thumbnail.py @@ -63,7 +63,8 @@ def test_create_multi(self): self.assertEqual(self.image_attachment.thumbnail_ids, thumbnails) - # if we call the method again for the same size, we should get the same thumbnail + # if we call the method again for the same size, we should get the same + # thumbnail new_thumbnails = self.fs_thumbnail_model.get_or_create_thumbnails( self.fs_image_value, sizes=[(16, 16), (8, 8)], base_name="My super test" )[self.fs_image_value] diff --git a/fs_image_thumbnail/views/fs_thumbnail.xml b/fs_image_thumbnail/views/fs_thumbnail.xml index 9de1fd6cf4..c6b8c1d3d3 100644 --- a/fs_image_thumbnail/views/fs_thumbnail.xml +++ b/fs_image_thumbnail/views/fs_thumbnail.xml @@ -40,7 +40,7 @@ defined for the mixin --> - + From 6f9921443fec971731376d59abb6cdc9703c6d1b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 31 May 2024 07:20:55 +0000 Subject: [PATCH 19/26] [BOT] post-merge updates --- fs_image_thumbnail/README.rst | 2 +- fs_image_thumbnail/i18n/es.po | 16 ++++++++------- fs_image_thumbnail/i18n/it.po | 20 ++++++++++--------- .../static/description/index.html | 2 +- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/fs_image_thumbnail/README.rst b/fs_image_thumbnail/README.rst index 41db42c20b..8ccce0e025 100644 --- a/fs_image_thumbnail/README.rst +++ b/fs_image_thumbnail/README.rst @@ -7,7 +7,7 @@ Fs Image Thumbnail !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ae84af058fd490c7c8916156dc7db31813b6d5f7535e722740b152d6955e0d57 + !! source digest: sha256:1d1af8339aa4aee943dad48c165b12fca74f0dd16f574469fb90c58c8c073a47 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png diff --git a/fs_image_thumbnail/i18n/es.po b/fs_image_thumbnail/i18n/es.po index bad8caae96..fe8e152507 100644 --- a/fs_image_thumbnail/i18n/es.po +++ b/fs_image_thumbnail/i18n/es.po @@ -87,11 +87,6 @@ msgstr "Imagen" msgid "Image Thumbnail" msgstr "Imagen en Miniatura" -#. module: fs_image_thumbnail -#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update -msgid "Last Modified on" -msgstr "Última Modificación el" - #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid msgid "Last Updated by" @@ -150,8 +145,11 @@ msgstr "La imagen %(name)s debe adjuntarse a un archivo adjunto" #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__base_name msgid "" -"The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . + extension.\n" -"If not set, the base name will be the name of the original image.This base name is used to find all existing thumbnail of an image generated for the same base name." +"The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . " +"+ extension.\n" +"If not set, the base name will be the name of the original image.This base " +"name is used to find all existing thumbnail of an image generated for the " +"same base name." msgstr "" "La imagen en miniatura se denominará como nombre_base + _ + tamaño_x + _ + " "tamaño_y + . + extensión.\n" @@ -161,6 +159,7 @@ msgstr "" #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_product_document__thumbnail_ids #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view msgid "Thumbnails" msgstr "Miniaturas" @@ -176,3 +175,6 @@ msgstr "Tamaño X" #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_y msgid "Y size" msgstr "Talla Y" + +#~ msgid "Last Modified on" +#~ msgstr "Última Modificación el" diff --git a/fs_image_thumbnail/i18n/it.po b/fs_image_thumbnail/i18n/it.po index b03afa19b2..267c55e745 100644 --- a/fs_image_thumbnail/i18n/it.po +++ b/fs_image_thumbnail/i18n/it.po @@ -87,11 +87,6 @@ msgstr "Immagine" msgid "Image Thumbnail" msgstr "Anteprima immagine" -#. module: fs_image_thumbnail -#: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail____last_update -msgid "Last Modified on" -msgstr "Ultima modifica il" - #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__write_uid msgid "Last Updated by" @@ -150,17 +145,21 @@ msgstr "L'immagine %(name)s deve essere collegata ad una allegato" #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_image_thumbnail_mixin__base_name #: model:ir.model.fields,help:fs_image_thumbnail.field_fs_thumbnail__base_name msgid "" -"The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . + extension.\n" -"If not set, the base name will be the name of the original image.This base name is used to find all existing thumbnail of an image generated for the same base name." +"The thumbnail image will be named as base_name + _ + size_x + _ + size_y + . " +"+ extension.\n" +"If not set, the base name will be the name of the original image.This base " +"name is used to find all existing thumbnail of an image generated for the " +"same base name." msgstr "" -"L'immagine anteprima verrà denominata come " -"nome_bae+_+dimensione_x+dimensione_y+.+estensione.\n" +"L'immagine anteprima verrà denominata come nome_bae+_+dimensione_x" +"+dimensione_y+.+estensione.\n" "Se non impostato, il nome base sarà il nome dell'immagine originale. Questo " "nome base è utilizzato per trovare tutte le anteprime di una immagine " "generate per lo stesso nome base." #. module: fs_image_thumbnail #: model:ir.model.fields,field_description:fs_image_thumbnail.field_ir_attachment__thumbnail_ids +#: model:ir.model.fields,field_description:fs_image_thumbnail.field_product_document__thumbnail_ids #: model_terms:ir.ui.view,arch_db:fs_image_thumbnail.ir_attachment_form_view msgid "Thumbnails" msgstr "Anteprime" @@ -176,3 +175,6 @@ msgstr "Dimensione X" #: model:ir.model.fields,field_description:fs_image_thumbnail.field_fs_thumbnail__size_y msgid "Y size" msgstr "Dimensione Y" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" diff --git a/fs_image_thumbnail/static/description/index.html b/fs_image_thumbnail/static/description/index.html index cc3af6f013..77ae54b004 100644 --- a/fs_image_thumbnail/static/description/index.html +++ b/fs_image_thumbnail/static/description/index.html @@ -366,7 +366,7 @@

Fs Image Thumbnail

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:ae84af058fd490c7c8916156dc7db31813b6d5f7535e722740b152d6955e0d57 +!! source digest: sha256:1d1af8339aa4aee943dad48c165b12fca74f0dd16f574469fb90c58c8c073a47 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Alpha License: AGPL-3 OCA/storage Translate me on Weblate Try me on Runboat

This module extends the fs_image addon to support the creation and From ca1b3d7d94421760adc808d2524e18ec01b6bfc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Duy=20=28=C4=90=E1=BB=97=20Anh=29?= Date: Thu, 17 Apr 2025 15:43:40 +0700 Subject: [PATCH 20/26] [IMP] fs_image_thumbnail: pre-commit auto fixes --- fs_image_thumbnail/security/fs_thumbnail.xml | 2 -- fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml | 8 +++----- fs_image_thumbnail/views/fs_thumbnail.xml | 4 +--- fs_image_thumbnail/views/ir_attachment.xml | 2 -- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/fs_image_thumbnail/security/fs_thumbnail.xml b/fs_image_thumbnail/security/fs_thumbnail.xml index 7690d990f4..dc10b5852f 100644 --- a/fs_image_thumbnail/security/fs_thumbnail.xml +++ b/fs_image_thumbnail/security/fs_thumbnail.xml @@ -2,7 +2,6 @@ - fs.thumbnail access read @@ -12,5 +11,4 @@ - diff --git a/fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml b/fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml index 8dfac21a0f..09a23518f5 100644 --- a/fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml +++ b/fs_image_thumbnail/views/fs_image_thumbnail_mixin.xml @@ -2,14 +2,12 @@ - fs.image.thumbnail.mixin.form (in fs_image_thumbnail) fs.image.thumbnail.mixin

-
-
+