Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
a8ec984
[ADD] fs_product_multi_image: a drop-in replacement of storage_image_…
lmignon Sep 5, 2023
e035126
[UPD] Update fs_product_multi_image.pot
Sep 24, 2023
549410a
[BOT] post-merge updates
OCA-git-bot Sep 24, 2023
53fcec7
[IMP] image_tag: Removes dependency on sale module
lmignon Sep 25, 2023
0c4b6e4
[UPD] Update fs_product_multi_image.pot
Sep 25, 2023
24b15a3
[BOT] post-merge updates
OCA-git-bot Sep 25, 2023
60de873
[FIX] fs_product_multi_image: Sort variant_image_ids by sequence
lmignon Oct 4, 2023
b42fdb1
[BOT] post-merge updates
OCA-git-bot Oct 4, 2023
c7cac41
Added translation using Weblate (Spanish)
Ivorra78 Oct 26, 2023
f6cf576
Translated using Weblate (Spanish)
Ivorra78 Oct 26, 2023
66dcc2b
Added translation using Weblate (Italian)
mymage Nov 27, 2023
bf10a4a
Translated using Weblate (Italian)
mymage Nov 29, 2023
4711e0a
Translated using Weblate (Italian)
mymage Dec 6, 2023
010784d
Translated using Weblate (Italian)
mymage Dec 12, 2023
c7775a5
[FIX] updated image and image_medium label to prevent odoo warning wi…
benwillig Jan 17, 2024
801958e
[UPD] Update fs_product_multi_image.pot
Jan 17, 2024
1db624f
[BOT] post-merge updates
OCA-git-bot Jan 17, 2024
e8a29a8
Update translation files
weblate Jan 17, 2024
1ea074b
Translated using Weblate (Italian)
mymage Jan 18, 2024
564640f
[FIX] prevent an exception when adding new virtual records, unable to…
benwillig Jan 23, 2024
960f5cd
[ADD] new widget to allow image upload through drag and drop or file …
benwillig Jan 23, 2024
84c5560
[ADD] allow user to select where he want to store the image
benwillig Jan 23, 2024
e9ef823
[UPD] Update fs_product_multi_image.pot
Jan 25, 2024
de8571f
[BOT] post-merge updates
OCA-git-bot Jan 25, 2024
638235d
Update translation files
weblate Jan 25, 2024
a1406a2
Translated using Weblate (Spanish)
Ivorra78 Jan 27, 2024
ccce9b1
[FIX] do not display kanban img tag if the record has not been create…
benwillig Jan 29, 2024
ed7e32c
Added translation using Weblate (French)
benwillig Feb 19, 2024
8c628f9
Translated using Weblate (French)
benwillig Feb 19, 2024
3e055a7
[BOT] post-merge updates
OCA-git-bot Feb 21, 2024
cd946c7
[IMP] fs_product_multi_image: pre-commit auto fixes
nguyenminhchien Feb 29, 2024
a62dec5
[MIG] fs_product_multi_image: Migration to 17.0
nguyenminhchien Mar 1, 2024
dde5088
[UPD] Update fs_product_multi_image.pot
May 3, 2024
ac0c787
[BOT] post-merge updates
OCA-git-bot May 3, 2024
32f2ac8
Update translation files
weblate May 3, 2024
b87eff1
[CHG] display kanban view by default for product images
benwillig May 15, 2024
4b01693
[CHG] use list.addNew to add relation records instead of calling the …
benwillig Jan 29, 2024
241d41c
[BOT] post-merge updates
OCA-git-bot Oct 28, 2024
ef38c33
[IMP] fs_product_multi_image: pre-commit autofixes
rousseldenis Feb 20, 2025
7b9bf42
[MIG] fs_product_multi_image: Migration to 18.0
rousseldenis Feb 20, 2025
cd10cd9
[DONT MERGE] test-requirements.txt
rousseldenis Feb 20, 2025
a202c5a
[IMP] fs_product_multi_image: Upgrade to Beta
rousseldenis Mar 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions fs_product_multi_image/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
======================
Fs Product Multi Image
======================

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

.. |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-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/18.0/fs_product_multi_image
:alt: OCA/storage
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/storage-18-0/storage-18-0-fs_product_multi_image
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/storage&target_branch=18.0
:alt: Try me on Runboat

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

Attach images to products and categories and store them on an external
filesystem instead of the database.

This addon is a drop-in replacement for the **storage_image_product**
addon.

**Table of contents**

.. contents::
:local:

Usage
=====

On the category and product form, a new tab allows you to add images to
the related object. The images can be specific to the model or you can
use an existing one.

On the link forms, you can add an image tag in addition to the image. In
the specific case of the product template, you can also specify for
which variant attribute values the image is valid.

On the product variant form, the image tag will be automatically filled
whith the image tag of the product template for the same variant
attribute values.

In every case, a main image is computed and used as the default image
for the object. It depends on the sequence of the images (first one is
the main one).

Changelog
=========

16.0.1.0.2 (2023-10-04)
-----------------------

**Bugfixes**

- Ensures the variant_image_ids are sorted by sequence and name. Before
this change, the order was random and could change between runs.
(`#282 <https://github.com/OCA/storage/issues/282>`__)

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

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

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

Credits
=======

Authors
-------

* ACSONE SA/NV

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

- Laurent Mignon <[email protected]>
- Raphaël Reverdy <[email protected]>
- Denis Roussel <[email protected]>
- Quentin Groulard <[email protected]>
- `Camptocamp <https://www.camptocamp.com>`__

- Iván Todorovich <[email protected]>

- Nguyen Minh Chien <[email protected]>

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 <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-lmignon|

This module is part of the `OCA/storage <https://github.com/OCA/storage/tree/18.0/fs_product_multi_image>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions fs_product_multi_image/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
24 changes: 24 additions & 0 deletions fs_product_multi_image/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2023 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Fs Product Multi Image",
"summary": """
Manage multi images from extenal file system on product""",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/storage",
"depends": ["fs_base_multi_image", "product", "sales_team", "image_tag"],
"data": [
"security/fs_product_category_image.xml",
"security/fs_product_image.xml",
"views/fs_product_category_image.xml",
"views/fs_product_image.xml",
"views/image_tag.xml",
"views/product_category.xml",
"views/product_product.xml",
"views/product_template.xml",
],
"maintainers": ["lmignon"],
}
224 changes: 224 additions & 0 deletions fs_product_multi_image/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fs_product_multi_image
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-01-27 14:36+0000\n"
"Last-Translator: Ivorra78 <[email protected]>\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_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_image_tag__apply_on
msgid "Apply On"
msgstr "Aplicar en"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__attribute_value_ids
msgid "Attributes"
msgstr "Atributos"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__available_attribute_value_ids
msgid "Available Attributes"
msgstr "Atributos Disponibles"

#. module: fs_product_multi_image
#: model:ir.model.fields.selection,name:fs_product_multi_image.selection__image_tag__apply_on__category
msgid "Category"
msgstr "Categoría"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__create_uid
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__create_uid
msgid "Created by"
msgstr "Creado por"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__create_date
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__create_date
msgid "Created on"
msgstr "Creado el"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__display_name
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__display_name
msgid "Display Name"
msgstr "Mostrar Nombre"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__id
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__id
msgid "ID"
msgstr "ID (identificación)"

#. module: fs_product_multi_image
#: model_terms:ir.ui.view,arch_db:fs_product_multi_image.product_normal_form_view
msgid "If you need to edit the images, do it from the product template."
msgstr ""
"Si necesita editar las imágenes, hágalo desde la plantilla del producto."

#. module: fs_product_multi_image
#: model_terms:ir.ui.view,arch_db:fs_product_multi_image.fs_product_image_kanban_view
#: model_terms:ir.ui.view,arch_db:fs_product_multi_image.product_template_only_form_view
msgid "Image"
msgstr "Imagen"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__image_medium
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__image_medium
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_category__image_medium
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_product__image_medium
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_template__image_medium
msgid "Image (128)"
msgstr "Imagen (128)"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_category__image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_product__image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_template__image
msgid "Image (original)"
msgstr "Imagen (original)"

#. module: fs_product_multi_image
#: model:ir.model,name:fs_product_multi_image.model_image_tag
#: model:ir.ui.menu,name:fs_product_multi_image.menu_image_tag
msgid "Image Tag"
msgstr "Etiqueta de la Imagen"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_category__image_ids
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_product__image_ids
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_template__image_ids
#: model_terms:ir.ui.view,arch_db:fs_product_multi_image.product_category_form_view
#: model_terms:ir.ui.view,arch_db:fs_product_multi_image.product_normal_form_view
#: model_terms:ir.ui.view,arch_db:fs_product_multi_image.product_template_only_form_view
msgid "Images"
msgstr "Imágenes"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__write_uid
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__write_uid
msgid "Last Updated by"
msgstr "Actualizado por Última vez por"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__write_date
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__write_date
msgid "Last Updated on"
msgstr "Última Actualización el"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__link_existing
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__link_existing
msgid "Link Existing"
msgstr "Enlace Existente"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__image_id
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__image_id
msgid "Linked image"
msgstr "Imagen vinculada"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_product__main_image_id
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_template__main_image_id
msgid "Main Image"
msgstr "Imagen Principal"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__mimetype
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__mimetype
msgid "Mimetype"
msgstr "Tipo Mimo"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__name
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__name
msgid "Name"
msgstr "Nombre"

#. module: fs_product_multi_image
#: model:ir.model,name:fs_product_multi_image.model_product_template
#: model:ir.model.fields.selection,name:fs_product_multi_image.selection__image_tag__apply_on__product
msgid "Product"
msgstr "Producto"

#. module: fs_product_multi_image
#: model:ir.model,name:fs_product_multi_image.model_product_category
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__product_categ_id
msgid "Product Category"
msgstr "Categoría de Producto"

#. module: fs_product_multi_image
#: model:ir.model,name:fs_product_multi_image.model_fs_product_category_image
msgid "Product Category Image"
msgstr "Imagen de Categoría de Producto"

#. module: fs_product_multi_image
#: model:ir.model,name:fs_product_multi_image.model_fs_product_image
msgid "Product Image"
msgstr "Imagen del Producto"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__product_tmpl_id
msgid "Product Template"
msgstr "Plantilla del Producto"

#. module: fs_product_multi_image
#: model:ir.model,name:fs_product_multi_image.model_product_template_attribute_line
msgid "Product Template Attribute Line"
msgstr "Plantilla de Línea de Atributo de Producto"

#. module: fs_product_multi_image
#: model:ir.model,name:fs_product_multi_image.model_product_product
msgid "Product Variant"
msgstr "Variante del Producto"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__sequence
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__sequence
msgid "Sequence"
msgstr "Secuencia"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__specific_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__specific_image
msgid "Specific Image"
msgstr "Imagen Específica"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__specific_image_medium
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__specific_image_medium
msgid "Specific Image (128)"
msgstr "Imagen Específica (128)"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_category_image__tag_id
#: model:ir.model.fields,field_description:fs_product_multi_image.field_fs_product_image__tag_id
msgid "Tag"
msgstr "Etiqueta"

#. module: fs_product_multi_image
#: model:ir.model.fields,field_description:fs_product_multi_image.field_product_product__variant_image_ids
msgid "Variant Images"
msgstr "Imágenes de Variante"

#~ msgid "Last Modified on"
#~ msgstr "Última Modificación el"

#~ msgid "Image 128"
#~ msgstr "Imagen 128"

#~ msgid "Specific Image 128"
#~ msgstr "Imagen Específica 128"
Loading
Loading