Fs Product Multi Media

fs_product_multi_media
REPOSITORY
REPOSITORYOCA/storage
GIT
GIThttps://github.com/OCA/storage.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/storage/tree/17.0/fs_product_multi_media
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, ACSONE SA/NV
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, chien
WEBSITE
WEBSITEhttps://github.com/OCA/storage
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-env:
    - server_environment
OCA/storage:
    - fs_base_multi_media
    - fs_file
    - fs_attachment
    - fs_storage
odoo/odoo:
    - base
    - base_sparse_field
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - sales_team
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES fsspec>=2025.3.0
python_slugify
fsspec>=2024.5.0
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Attach medias 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_media_product**
addon.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
fs_product_category_media_form_view product.category.fs.media.form fs.product.category.media field Inherits fs_base_multi_media.fs_media_relation_mixin_form_view
fs_product_media_form_view fs.product.media.form fs.product.media group Inherits fs_base_multi_media.fs_media_relation_mixin_form_view
product_category_form_view product.category.form product.category xpath Inherits product.product_category_form_view
product_normal_form_view product.product page Inherits product.product_normal_form_view
product_template_only_form_view product.template page Inherits product.product_template_only_form_view
Models touched (6)

New fields (1)
  • product_categ_id Many2one → product.category
    comodel_name='product.category' index=True ondelete='cascade' string='Product Category'
Public methods (0)

No public methods.

New fields (3)
  • attribute_value_ids Many2many → product.attribute.value
    domain="[('id', 'in', available_attribute_value_ids)]" string='Attributes' args: 'product.attribute.value'
  • available_attribute_value_ids Many2many → product.attribute.value
    compute='_compute_available_attribute' string='Available Attributes' args: 'product.attribute.value'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' index=True ondelete='cascade' string='Product Template'
Public methods (0)

No public methods.

New fields (1)
  • media_ids One2many → fs.product.category.media
    comodel_name='fs.product.category.media' inverse_name='product_categ_id' string='Medias'
Public methods (0)

No public methods.

New fields (1)
  • variant_media_ids Many2many → fs.product.media
    compute='_compute_variant_media_ids' store=True string='Variant Medias' args: 'fs.product.media'
Public methods (0)

No public methods.

New fields (1)
  • media_ids One2many → fs.product.media
    comodel_name='fs.product.media' inverse_name='product_tmpl_id' string='Medias'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • unlink(self)
  • write(self, values)
REPOSITORY
REPOSITORYOCA/storage
GIT
GIThttps://github.com/OCA/storage.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/storage/tree/16.0/fs_product_multi_media
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, ACSONE SA/NV
COMMITTERS
COMMITTERSLaurent Mignon (ACSONE), Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/storage
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:52
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/storage:
    - fs_base_multi_media
    - fs_file
    - fs_attachment
    - fs_storage
odoo/odoo:
    - base
    - base_sparse_field
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - sales_team
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES fsspec>=2025.3.0
python_slugify
fsspec>=2024.5.0
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
fs_product_category_media_form_view product.category.fs.media.form fs.product.category.media field Inherits fs_base_multi_media.fs_media_relation_mixin_form_view
fs_product_media_form_view fs.product.media.form fs.product.media group Inherits fs_base_multi_media.fs_media_relation_mixin_form_view
product_category_form_view product.category.form product.category xpath Inherits product.product_category_form_view
product_normal_form_view product.product page Inherits product.product_normal_form_view
product_template_only_form_view product.template page Inherits product.product_template_only_form_view
Models touched (6)

New fields (1)
  • product_categ_id Many2one → product.category
    comodel_name='product.category' index=True ondelete='cascade' string='Product Category'
Public methods (0)

No public methods.

New fields (3)
  • attribute_value_ids Many2many → product.attribute.value
    domain="[('id', 'in', available_attribute_value_ids)]" string='Attributes' args: 'product.attribute.value'
  • available_attribute_value_ids Many2many → product.attribute.value
    compute='_compute_available_attribute' string='Available Attributes' args: 'product.attribute.value'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' index=True ondelete='cascade' string='Product Template'
Public methods (0)

No public methods.

New fields (1)
  • media_ids One2many → fs.product.category.media
    comodel_name='fs.product.category.media' inverse_name='product_categ_id' string='Medias'
Public methods (0)

No public methods.

New fields (1)
  • variant_media_ids Many2many → fs.product.media
    compute='_compute_variant_media_ids' store=True string='Variant Medias' args: 'fs.product.media'
Public methods (0)

No public methods.

New fields (1)
  • media_ids One2many → fs.product.media
    comodel_name='fs.product.media' inverse_name='product_tmpl_id' string='Medias'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • unlink(self)
  • write(self, values)