| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/19.0/storage_media_product |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Laurent Mignon (ACSONE) |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/server-env: - server_environment OCA/storage: - storage_media - storage_file - storage_backend - storage_thumbnail odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - html_editor - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
python_slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Attach images to products and categories |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_media_relation_form |
product.media.relation | form | New | |
product_media_relation_tree |
product.media.relation | list | New | |
product_normal_form_view |
product.product | xpath | Inherits product.product_normal_form_view | |
product_template_only_form_view |
product.template | xpath | Inherits product.product_template_only_form_view |
media_ids
Many2many → storage.media
No public methods.
attribute_value_ids
Many2many → product.attribute.value
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'
description
Text
media_id
Many2one → storage.media
required=True
args: 'storage.media'
media_type_id
Many2one → storage.media.type
related='media_id.media_type_id'
args: 'storage.media.type', 'Media Type'
media_type_id
Many2one
readonly=True
related='media_id.media_type_id'
name
Char
readonly=True
related='media_id.name'
product_tmpl_id
Many2one → product.template
sequence
Integer
url
Char
readonly=True
related='media_id.url'
url_path
Char
readonly=True
related='media_id.url_path'
No public methods.
variant_media_ids
Many2many → product.media.relation
compute='_compute_variant_media_ids'
store=True
args: 'product.media.relation'
No public methods.
media_ids
One2many → product.media.relation
inverse_name='product_tmpl_id'
args: 'product.media.relation'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/18.0/storage_media_product |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, Simone Orsi, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/server-env: - server_environment OCA/storage: - storage_media - storage_file - storage_backend - storage_thumbnail odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - html_editor - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
python_slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Attach images to products and categories |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_media_relation_form |
product.media.relation | form | New | |
product_media_relation_tree |
product.media.relation | list | New | |
product_normal_form_view |
product.product | xpath | Inherits product.product_normal_form_view | |
product_template_only_form_view |
product.template | xpath | Inherits product.product_template_only_form_view |
media_ids
Many2many → storage.media
No public methods.
active
Boolean
readonly=True
related='media_id.active'
attribute_value_ids
Many2many → product.attribute.value
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'
description
Text
is_public
Boolean
readonly=True
related='media_id.file_id.is_public'
media_id
Many2one → storage.media
required=True
args: 'storage.media'
media_type_id
Many2one → storage.media.type
related='media_id.media_type_id'
args: 'storage.media.type', 'Media Type'
media_type_id
Many2one
readonly=True
related='media_id.media_type_id'
name
Char
readonly=True
related='media_id.name'
product_tmpl_id
Many2one → product.template
sequence
Integer
url
Char
readonly=True
related='media_id.url'
url_path
Char
readonly=True
related='media_id.url_path'
No public methods.
variant_media_ids
Many2many → product.media.relation
compute='_compute_variant_media_ids'
store=True
args: 'product.media.relation'
No public methods.
media_ids
One2many → product.media.relation
inverse_name='product_tmpl_id'
args: 'product.media.relation'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/14.0/storage_media_product |
| VERSION | |
| VERSION | 2.3.0 |
| CATEGORY | |
| CATEGORY | Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Thierry Ducrest, Sébastien BEAU, oca-travis, Weblate, OCA-git-bot, Simone Orsi, Pierrick Brun, oca-ci, Héctor Villarreal Ortega, Hai Lang |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:04 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/server-env: - server_environment OCA/storage: - storage_media - storage_file - storage_backend - storage_thumbnail odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
python_slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_media_relation_form |
product.media.relation | form | New | |
product_media_relation_tree |
product.media.relation | tree | New | |
product_normal_form_view |
product.product | xpath | Inherits product.product_normal_form_view | |
product_template_only_form_view |
product.template | xpath | Inherits product.product_template_only_form_view |
media_ids
Many2many → storage.media
No public methods.
attribute_value_ids
Many2many → product.attribute.value
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'
description
Text
is_media_active
Boolean
related='media_id.active'
media_id
Many2one → storage.media
required=True
args: 'storage.media'
media_type_id
Many2one → storage.media.type
related='media_id.media_type_id'
args: 'storage.media.type', 'Media Type'
media_type_id
Many2one
readonly=True
related='media_id.media_type_id'
name
Char
readonly=True
related='media_id.name'
product_tmpl_id
Many2one → product.template
sequence
Integer
url
Char
readonly=True
related='media_id.url'
url_path
Char
readonly=True
related='media_id.url_path'
No public methods.
variant_media_ids
Many2many → product.media.relation
compute='_compute_variant_media_ids'
store=True
args: 'product.media.relation'
No public methods.
media_ids
One2many → product.media.relation
inverse_name='product_tmpl_id'
args: 'product.media.relation'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/13.0/storage_media_product |
| VERSION | |
| VERSION | 1.2.1 |
| CATEGORY | |
| CATEGORY | Storage |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Thierry Ducrest, oca-travis, OCA-git-bot, Simone Orsi, Iryna Vyshnevska |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:16 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/server-env: - server_environment OCA/storage: - storage_media - storage_file - storage_backend - storage_thumbnail odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
python_slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_media_relation_form |
product.media.relation | form | New | |
product_media_relation_tree |
product.media.relation | tree | New | |
product_normal_form_view |
product.product | xpath | Inherits product.product_normal_form_view | |
product_template_only_form_view |
product.template | xpath | Inherits product.product_template_only_form_view |
media_ids
Many2many → storage.media
No public methods.
attribute_value_ids
Many2many → product.attribute.value
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'
media_id
Many2one → storage.media
required=True
args: 'storage.media'
media_type_id
Many2one → storage.media.type
related='media_id.media_type_id'
args: 'storage.media.type', 'Media Type'
media_type_id
Many2one
readonly=True
related='media_id.media_type_id'
name
Char
readonly=True
related='media_id.name'
product_tmpl_id
Many2one → product.template
sequence
Integer
url
Char
readonly=True
related='media_id.url'
No public methods.
variant_media_ids
Many2many → product.media.relation
compute='_compute_variant_media_ids'
store=True
args: 'product.media.relation'
No public methods.
media_ids
One2many → product.media.relation
inverse_name='product_tmpl_id'
args: 'product.media.relation'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/12.0/storage_media_product |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | Storage |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Laurent Mignon (ACSONE), Denis Roussel, Stéphane Bidoul (ACSONE), Tom Blauwendraat |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:21 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/server-env: - server_environment OCA/storage: - storage_media - storage_file - storage_backend - storage_thumbnail odoo/odoo: - base - base_sparse_field - product - decimal_precision - base_setup - web - bus - web_tour - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_media_relation_form |
product.media.relation | form | New | |
product_media_relation_tree |
product.media.relation | tree | New | |
product_normal_form_view |
product.product | xpath | Inherits product.product_normal_form_view | |
product_template_only_form_view |
product.template | xpath | Inherits product.product_template_only_form_view |
media_ids
Many2many → storage.media
No public methods.
attribute_value_ids
Many2many → product.attribute.value
string='Attributes'
args: 'product.attribute.value'
available_attribute_value_ids
Many2many → product.attribute.value
compute='_compute_available_attribute'
string='Attributes'
args: 'product.attribute.value'
media_id
Many2one → storage.media
required=True
args: 'storage.media'
media_type_id
Many2one → storage.media.type
related='media_id.media_type_id'
args: 'storage.media.type', 'Media Type'
media_type_id
Many2one
readonly=True
related='media_id.media_type_id'
name
Char
readonly=True
related='media_id.name'
product_tmpl_id
Many2one → product.template
sequence
Integer
url
Char
readonly=True
related='media_id.url'
No public methods.
variant_media_ids
Many2many → product.media.relation
compute='_compute_variant_media_ids'
store=True
args: 'product.media.relation'
No public methods.
media_ids
One2many → product.media.relation
inverse_name='product_tmpl_id'
args: 'product.media.relation'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/storage |
| GIT | |
| GIT | https://github.com/OCA/storage.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/storage/tree/10.0/storage_media_product |
| VERSION | |
| VERSION | 2.0.1 |
| CATEGORY | |
| CATEGORY | Storage |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Laurent Mignon (ACSONE), Denis Roussel, Sébastien BEAU, oca-travis, OCA-git-bot, Benoit |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/server-tools: - keychain OCA/storage: - storage_media - storage_file - storage_backend - storage_thumbnail odoo/odoo: - base - base_setup - web_kanban - web - product - decimal_precision - bus - web_tour - report |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
slugify cryptography cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_media_relation_form |
product.media.relation | form | New | |
product_media_relation_tree |
product.media.relation | tree | New | |
product_normal_form_view |
product.product | xpath | Inherits product.product_normal_form_view | |
product_template_only_form_view |
product.template | xpath | Inherits product.product_template_only_form_view |
media_ids
Many2many → storage.media
No public methods.
attribute_value_ids
Many2many → product.attribute.value
string='Attributes'
args: 'product.attribute.value'
available_attribute_value_ids
Many2many → product.attribute.value
compute='_compute_available_attribute'
string='Attributes'
args: 'product.attribute.value'
media_id
Many2one → storage.media
required=True
args: 'storage.media'
media_type_id
Many2one → storage.media.type
related='media_id.media_type_id'
args: 'storage.media.type', 'Media Type'
media_type_id
Many2one
readonly=True
related='media_id.media_type_id'
name
Char
readonly=True
related='media_id.name'
product_tmpl_id
Many2one → product.template
sequence
Integer
url
Char
readonly=True
related='media_id.url'
No public methods.
variant_media_ids
Many2many → product.media.relation
compute='_compute_variant_media_ids'
store=True
args: 'product.media.relation'
No public methods.
media_ids
One2many → product.media.relation
inverse_name='product_tmpl_id'
args: 'product.media.relation'
No public methods.