| 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_image_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_image - storage_thumbnail - storage_file - storage_backend odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - html_editor - uom - sale - sales_team - account_payment - account - onboarding - analytic - portal - http_routing - auth_signup - digest - resource - payment - utm |
| 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 |
|---|---|---|---|---|
image_tag_view_form |
image.tag | form | New | |
image_tag_view_search |
image.tag | search | New | |
image_tag_view_tree |
image.tag | list | New | |
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_category_image_relation_form |
category.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_category_image_relation_kanban |
category.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_image_relation_form |
product.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_image_relation_kanban |
product.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_kanban_view |
product.product | field | Inherits product.product_kanban_view | |
product_normal_form_view |
product.product | field | Inherits product.product_normal_form_view | |
product_template_kanban_view |
product.template | field | Inherits product.product_template_kanban_view | |
product_template_only_form_view |
product.template | field | Inherits product.product_template_only_form_view | |
product_variant_easy_edit_view |
product.product | field | Inherits product.product_variant_easy_edit_view | |
storage_image_view_form |
storage.image | page | Inherits storage_image.storage_image_view_form |
category_id
Many2one → product.category
index=True
ondelete='cascade'
required=True
args: 'product.category'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'category')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
apply_on
Selection
default=<expr>
selection=[('product', 'Product'), ('category', 'Category')]
categ_img_rel_ids
One2many → category.image.relation
comodel_name='category.image.relation'
inverse_name='tag_id'
string='Category Image Relations'
name
Char
required=True
product_categ_count
Integer
compute='_compute_product_categ_count'
string='# of Categories'
product_img_rel_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='tag_id'
string='Product Image Relations'
product_tmpl_count
Integer
compute='_compute_product_tmpl_count'
string='# of Products'
action_open_product_categories(self)
action_open_product_templates(self)
image_ids
One2many → category.image.relation
inverse_name='category_id'
args: 'category.image.relation'
No public methods.
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
index=True
ondelete='cascade'
required=True
args: 'product.template'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'product')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
main_image_id
Many2one → storage.image
compute='_compute_main_image_id'
store=True
args: 'storage.image'
variant_image_ids
Many2many → product.image.relation
compute='_compute_variant_image_ids'
store=True
string='Variant Images'
args: 'product.image.relation'
variant_image_medium_url
Char
related='main_image_id.image_medium_url'
string='Variant main medium image URL'
variant_image_small_url
Char
related='main_image_id.image_small_url'
string='Variant main small image URL'
No public methods.
image_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='product_tmpl_id'
string='Images'
image_medium_url
Char
related='main_image_id.image_medium_url'
string='Main medium image URL'
image_small_url
Char
related='main_image_id.image_small_url'
string='Main small image URL'
main_image_id
Many2one → storage.image
comodel_name='storage.image'
compute='_compute_main_image_id'
store=True
No public methods.
No new fields.
Public methods (1)write(self, values)
category_relation_ids
One2many → category.image.relation
inverse_name='image_id'
string='Categories'
args: 'category.image.relation'
product_relation_ids
One2many → product.image.relation
inverse_name='image_id'
string='Products'
args: 'product.image.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_image_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_image - storage_thumbnail - storage_file - storage_backend odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - html_editor - uom - sale - sales_team - account_payment - account - onboarding - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| 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 |
|---|---|---|---|---|
image_tag_view_form |
image.tag | form | New | |
image_tag_view_search |
image.tag | search | New | |
image_tag_view_tree |
image.tag | list | New | |
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_category_image_relation_form |
category.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_category_image_relation_kanban |
category.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_image_relation_form |
product.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_image_relation_kanban |
product.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_kanban_view |
product.product | field | Inherits product.product_kanban_view | |
product_normal_form_view |
product.product | field | Inherits product.product_normal_form_view | |
product_template_kanban_view |
product.template | field | Inherits product.product_template_kanban_view | |
product_template_only_form_view |
product.template | field | Inherits product.product_template_only_form_view | |
product_variant_easy_edit_view |
product.product | field | Inherits product.product_variant_easy_edit_view | |
storage_image_view_form |
storage.image | page | Inherits storage_image.storage_image_view_form |
category_id
Many2one → product.category
index=True
ondelete='cascade'
required=True
args: 'product.category'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'category')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
apply_on
Selection
default=<expr>
selection=[('product', 'Product'), ('category', 'Category')]
categ_img_rel_ids
One2many → category.image.relation
comodel_name='category.image.relation'
inverse_name='tag_id'
string='Category Image Relations'
name
Char
required=True
product_categ_count
Integer
compute='_compute_product_categ_count'
string='# of Categories'
product_img_rel_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='tag_id'
string='Product Image Relations'
product_tmpl_count
Integer
compute='_compute_product_tmpl_count'
string='# of Products'
action_open_product_categories(self)
action_open_product_templates(self)
image_ids
One2many → category.image.relation
inverse_name='category_id'
args: 'category.image.relation'
No public methods.
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
index=True
ondelete='cascade'
required=True
args: 'product.template'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'product')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
main_image_id
Many2one → storage.image
compute='_compute_main_image_id'
store=True
args: 'storage.image'
variant_image_ids
Many2many → product.image.relation
compute='_compute_variant_image_ids'
store=True
string='Variant Images'
args: 'product.image.relation'
variant_image_medium_url
Char
related='main_image_id.image_medium_url'
string='Variant main medium image URL'
variant_image_small_url
Char
related='main_image_id.image_small_url'
string='Variant main small image URL'
No public methods.
image_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='product_tmpl_id'
string='Images'
image_medium_url
Char
related='main_image_id.image_medium_url'
string='Main medium image URL'
image_small_url
Char
related='main_image_id.image_small_url'
string='Main small image URL'
main_image_id
Many2one → storage.image
comodel_name='storage.image'
compute='_compute_main_image_id'
store=True
No public methods.
No new fields.
Public methods (1)write(self, values)
category_relation_ids
One2many → category.image.relation
inverse_name='image_id'
string='Categories'
args: 'category.image.relation'
product_relation_ids
One2many → product.image.relation
inverse_name='image_id'
string='Products'
args: 'product.image.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/15.0/storage_image_product |
| VERSION | |
| VERSION | 1.1.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 | Miquel Raïch, JordiMForgeFlow, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/storage |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:37 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/server-env: - server_environment OCA/storage: - storage_image - storage_thumbnail - storage_file - storage_backend odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - uom - sale - sales_team - payment - account - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
python_slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
image_tag_view_form |
image.tag | form | New | |
image_tag_view_search |
image.tag | search | New | |
image_tag_view_tree |
image.tag | tree | New | |
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_category_image_relation_form |
category.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_category_image_relation_kanban |
category.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_image_relation_form |
product.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_image_relation_kanban |
product.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_kanban_view |
product.product | field | Inherits product.product_kanban_view | |
product_normal_form_view |
product.product | field | Inherits product.product_normal_form_view | |
product_template_kanban_view |
product.template | field | Inherits product.product_template_kanban_view | |
product_template_only_form_view |
product.template | field | Inherits product.product_template_only_form_view | |
product_variant_easy_edit_view |
product.product | field | Inherits product.product_variant_easy_edit_view | |
storage_image_view_form |
storage.image | page | Inherits storage_image.storage_image_view_form |
category_id
Many2one → product.category
index=True
ondelete='cascade'
required=True
args: 'product.category'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'category')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
apply_on
Selection
default=<expr>
selection=[('product', 'Product'), ('category', 'Category')]
categ_img_rel_ids
One2many → category.image.relation
comodel_name='category.image.relation'
inverse_name='tag_id'
readonly=True
string='Category Image Relations'
name
Char
required=True
product_categ_count
Integer
compute='_compute_product_categ_count'
string='# of Categories'
product_img_rel_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='tag_id'
readonly=True
string='Product Image Relations'
product_tmpl_count
Integer
compute='_compute_product_tmpl_count'
string='# of Products'
action_open_product_categories(self)
action_open_product_templates(self)
image_ids
One2many → category.image.relation
inverse_name='category_id'
args: 'category.image.relation'
No public methods.
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
index=True
ondelete='cascade'
required=True
args: 'product.template'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'product')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
main_image_id
Many2one → storage.image
compute='_compute_main_image_id'
store=True
args: 'storage.image'
variant_image_ids
Many2many → product.image.relation
compute='_compute_variant_image_ids'
store=True
string='Variant Images'
args: 'product.image.relation'
variant_image_medium_url
Char
related='main_image_id.image_medium_url'
string='Variant main medium image URL'
variant_image_small_url
Char
related='main_image_id.image_small_url'
string='Variant main small image URL'
No public methods.
image_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='product_tmpl_id'
string='Images'
image_medium_url
Char
related='main_image_id.image_medium_url'
string='Main medium image URL'
image_small_url
Char
related='main_image_id.image_small_url'
string='Main small image URL'
main_image_id
Many2one → storage.image
comodel_name='storage.image'
compute='_compute_main_image_id'
store=True
No public methods.
No new fields.
Public methods (1)write(self, values)
category_relation_ids
One2many → category.image.relation
inverse_name='image_id'
string='Categories'
args: 'category.image.relation'
product_relation_ids
One2many → product.image.relation
inverse_name='image_id'
string='Products'
args: 'product.image.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_image_product |
| VERSION | |
| VERSION | 3.5.2 |
| 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, Ivàn Todorovich, Miquel Raïch, JordiMForgeFlow, Sébastien BEAU, oca-travis, Weblate, OCA-git-bot, Simone Orsi, Pierrick Brun, oca-ci, 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_image - storage_thumbnail - storage_file - storage_backend odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - uom - sale - sales_team - payment - account - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
python_slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
image_tag_view_form |
image.tag | form | New | |
image_tag_view_search |
image.tag | search | New | |
image_tag_view_tree |
image.tag | tree | New | |
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_category_image_relation_form |
category.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_category_image_relation_kanban |
category.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_image_relation_form |
product.image.relation | group | Inherits storage_image.view_storage_image_abstract_form | |
product_image_relation_kanban |
product.image.relation | kanban | Inherits storage_image.view_storage_image_abstract_kanban | |
product_kanban_view |
product.product | field | Inherits product.product_kanban_view | |
product_normal_form_view |
product.product | field | Inherits product.product_normal_form_view | |
product_template_kanban_view |
product.template | field | Inherits product.product_template_kanban_view | |
product_template_only_form_view |
product.template | field | Inherits product.product_template_only_form_view | |
product_variant_easy_edit_view |
product.product | field | Inherits product.product_variant_easy_edit_view | |
storage_image_view_form |
storage.image | page | Inherits storage_image.storage_image_view_form |
category_id
Many2one → product.category
index=True
ondelete='cascade'
required=True
args: 'product.category'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'category')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
apply_on
Selection
default=<expr>
selection=[('product', 'Product'), ('category', 'Category')]
categ_img_rel_ids
One2many → category.image.relation
comodel_name='category.image.relation'
inverse_name='tag_id'
readonly=True
string='Category Image Relations'
name
Char
required=True
product_categ_count
Integer
compute='_compute_product_categ_count'
string='# of Categories'
product_img_rel_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='tag_id'
readonly=True
string='Product Image Relations'
product_tmpl_count
Integer
compute='_compute_product_tmpl_count'
string='# of Products'
action_open_product_categories(self)
action_open_product_templates(self)
image_ids
One2many → category.image.relation
inverse_name='category_id'
args: 'category.image.relation'
No public methods.
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
index=True
ondelete='cascade'
required=True
args: 'product.template'
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'product')]
index=True
string='Tag'
args: 'image.tag'
No public methods.
main_image_id
Many2one → storage.image
compute='_compute_main_image_id'
store=True
args: 'storage.image'
variant_image_ids
Many2many → product.image.relation
compute='_compute_variant_image_ids'
store=True
string='Variant Images'
args: 'product.image.relation'
variant_image_medium_url
Char
related='main_image_id.image_medium_url'
string='Variant main medium image URL'
variant_image_small_url
Char
related='main_image_id.image_small_url'
string='Variant main small image URL'
No public methods.
image_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='product_tmpl_id'
string='Images'
image_medium_url
Char
related='main_image_id.image_medium_url'
string='Main medium image URL'
image_small_url
Char
related='main_image_id.image_small_url'
string='Main small image URL'
main_image_id
Many2one → storage.image
comodel_name='storage.image'
compute='_compute_main_image_id'
store=True
No public methods.
No new fields.
Public methods (1)write(self, values)
category_relation_ids
One2many → category.image.relation
inverse_name='image_id'
string='Categories'
args: 'category.image.relation'
product_relation_ids
One2many → product.image.relation
inverse_name='image_id'
string='Products'
args: 'product.image.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_image_product |
| VERSION | |
| VERSION | 3.0.2 |
| 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), mreficent, Enric Tobella, Jordi Ballester, Miquel Raïch, JordiMForgeFlow, AaronHForgeFlow, Sébastien BEAU, oca-travis, OCA-git-bot, Simone Orsi, Quentin Groulard, Héctor Villarreal Ortega |
| 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_image - storage_thumbnail - storage_file - storage_backend odoo/odoo: - base - base_sparse_field - product - base_setup - web - bus - web_tour - uom - sale - sales_team - payment - account - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
python_slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
image_tag_view_form |
image.tag | form | New | |
image_tag_view_search |
image.tag | search | New | |
image_tag_view_tree |
image.tag | tree | New | |
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_category_image_relation_form |
category.image.relation | form | New | |
product_category_image_relation_kanban |
category.image.relation | kanban | New | |
product_image_relation_form |
product.image.relation | form | New | |
product_image_relation_kanban |
product.image.relation | kanban | New | |
product_kanban_view |
product.product | field | Inherits product.product_kanban_view | |
product_normal_form_view |
product.product | field | Inherits product.product_normal_form_view | |
product_template_kanban_view |
product.template | field | Inherits product.product_template_kanban_view | |
product_template_only_form_view |
product.template | field | Inherits product.product_template_only_form_view | |
product_variant_easy_edit_view |
product.product | field | Inherits product.product_variant_easy_edit_view | |
storage_image_view_form |
storage.image | page | Inherits storage_image.storage_image_view_form |
category_id
Many2one → product.category
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'category')]
args: 'image.tag'
No public methods.
apply_on
Selection
default=<expr>
selection=[('product', 'Product'), ('category', 'Category')]
categ_img_rel_ids
One2many → category.image.relation
comodel_name='category.image.relation'
inverse_name='tag_id'
readonly=True
string='Category Image Relations'
name
Char
product_categ_count
Integer
compute='_compute_product_categ_count'
string='# of Categories'
product_img_rel_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='tag_id'
readonly=True
string='Product Image Relations'
product_tmpl_count
Integer
compute='_compute_product_tmpl_count'
string='# of Products'
action_open_product_categories(self)
action_open_product_templates(self)
name
Char
No public methods.
image_ids
One2many → category.image.relation
inverse_name='category_id'
args: 'category.image.relation'
No public methods.
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
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'product')]
args: 'image.tag'
No public methods.
main_image_id
Many2one → storage.image
compute='_compute_main_image_id'
store=True
args: 'storage.image'
variant_image_ids
Many2many → product.image.relation
compute='_compute_variant_image_ids'
store=True
string='Variant Images'
args: 'product.image.relation'
variant_image_medium_url
Char
related='main_image_id.image_medium_url'
string='Variant main medium image URL'
variant_image_small_url
Char
related='main_image_id.image_small_url'
string='Variant main small image URL'
No public methods.
image_ids
One2many → product.image.relation
comodel_name='product.image.relation'
inverse_name='product_tmpl_id'
string='Images'
image_medium_url
Char
related='main_image_id.image_medium_url'
string='Main medium image URL'
image_small_url
Char
related='main_image_id.image_small_url'
string='Main small image URL'
main_image_id
Many2one → storage.image
comodel_name='storage.image'
compute='_compute_main_image_id'
store=True
No public methods.
No new fields.
Public methods (1)write(self, values)
category_relation_ids
One2many → category.image.relation
inverse_name='image_id'
string='Categories'
args: 'category.image.relation'
product_relation_ids
One2many → product.image.relation
inverse_name='image_id'
string='Products'
args: 'product.image.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_image_product |
| VERSION | |
| VERSION | 1.2.2 |
| 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 | Stéphane Bidoul, GitHub, Laurent Mignon (ACSONE), Denis Roussel, Stéphane Bidoul (ACSONE), Sebastien Beau, Thomas Binsfeld, Sébastien BEAU, oca-travis, OCA-git-bot, Tom Blauwendraat, Quentin Groulard |
| 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_image - storage_thumbnail - storage_file - storage_backend odoo/odoo: - base - base_sparse_field - product - decimal_precision - base_setup - web - bus - web_tour - uom - sale - sales_team - payment - account - analytic - portal - http_routing - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
slugify cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
image_tag_view_search |
image.tag | search | New | |
image_tag_view_tree |
image.tag | tree | New | |
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_category_image_relation_form |
category.image.relation | form | New | |
product_category_image_relation_kanban |
category.image.relation | kanban | New | |
product_image_relation_form |
product.image.relation | form | New | |
product_image_relation_kanban |
product.image.relation | kanban | New | |
product_kanban_view |
product.product | field | Inherits product.product_kanban_view | |
product_normal_form_view |
product.product | field | Inherits product.product_normal_form_view | |
product_template_kanban_view |
product.template | field | Inherits product.product_template_kanban_view | |
product_template_only_form_view |
product.template | field | Inherits product.product_template_only_form_view | |
product_variant_easy_edit_view |
product.product | field | Inherits product.product_variant_easy_edit_view | |
storage_image_view_form |
storage.image | page | Inherits storage_image.storage_image_view_form |
category_id
Many2one → product.category
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'category')]
args: 'image.tag'
No public methods.
apply_on
Selection
default=<expr>
selection=[('product', 'Product'), ('category', 'Category')]
name
Char
No public methods.
name
Char
No public methods.
image_ids
One2many → category.image.relation
inverse_name='category_id'
args: 'category.image.relation'
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'
product_tmpl_id
Many2one → product.template
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'product')]
args: 'image.tag'
No public methods.
variant_image_ids
Many2many → product.image.relation
compute='_compute_variant_image_ids'
store=True
string='Variant Images'
args: 'product.image.relation'
variant_image_medium_url
Char
related='variant_image_ids.image_id.image_medium_url'
store=True
string='Variant Image Medium Url'
variant_image_small_url
Char
related='variant_image_ids.image_id.image_small_url'
store=True
string='Variant Image Small Url'
No public methods.
image_ids
One2many → product.image.relation
inverse_name='product_tmpl_id'
string='Images'
args: 'product.image.relation'
image_medium_url
Char
related='image_ids.image_id.image_medium_url'
store=True
image_small_url
Char
related='image_ids.image_id.image_small_url'
store=True
No public methods.
category_relation_ids
One2many → category.image.relation
inverse_name='image_id'
string='Categories'
args: 'category.image.relation'
product_relation_ids
One2many → product.image.relation
inverse_name='image_id'
string='Products'
args: 'product.image.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_image_product |
| VERSION | |
| VERSION | 2.2.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 | Stéphane Bidoul, Alexis de Lattre, GitHub, Laurent Mignon (ACSONE), Denis Roussel, Sébastien BEAU, oca-travis, OCA-git-bot, Benoit, Pierrick Brun, François Honoré, Quentin Groulard |
| 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_image - storage_thumbnail - storage_file - storage_backend OCA/web: - web_tree_image odoo/odoo: - base - base_setup - web_kanban - web - product - decimal_precision - bus - web_tour - report - sale - sales_team - account - analytic - web_planner - procurement |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
slugify cryptography cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
image_tag_view_search |
image.tag | search | New | |
image_tag_view_tree |
image.tag | tree | New | |
product_category_form_view |
product.category | xpath | Inherits product.product_category_form_view | |
product_category_image_relation_form |
category.image.relation | form | New | |
product_category_image_relation_kanban |
category.image.relation | kanban | New | |
product_category_image_relation_tree |
category.image.relation | tree | New | |
product_image_relation_form |
product.image.relation | form | New | |
product_image_relation_kanban |
product.image.relation | kanban | New | |
product_image_relation_tree |
product.image.relation | tree | New | |
product_kanban_view |
product.product | field | Inherits product.product_kanban_view | |
product_normal_form_view |
product.product | field | Inherits product.product_normal_form_view | |
product_template_kanban_view |
product.template | field | Inherits product.product_template_kanban_view | |
product_template_only_form_view |
product.template | field | Inherits product.product_template_only_form_view | |
product_variant_easy_edit_view |
product.product | field | Inherits product.product_variant_easy_edit_view |
category_id
Many2one → product.category
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'category')]
args: 'image.tag'
No public methods.
apply_on
Selection
selection=[('product', 'Product'), ('category', 'Category')]
name
Char
No public methods.
name
Char
No public methods.
image_ids
One2many → category.image.relation
inverse_name='category_id'
args: 'category.image.relation'
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'
product_tmpl_id
Many2one → product.template
tag_id
Many2one → image.tag
domain=[('apply_on', '=', 'product')]
args: 'image.tag'
No public methods.
variant_image_ids
Many2many → product.image.relation
compute='_compute_variant_image_ids'
store=True
args: 'product.image.relation'
variant_image_medium_url
Char
related='variant_image_ids.image_id.image_medium_url'
store=True
variant_image_small_url
Char
related='variant_image_ids.image_id.image_small_url'
store=True
No public methods.
image_ids
One2many → product.image.relation
inverse_name='product_tmpl_id'
args: 'product.image.relation'
image_medium_url
Char
related='image_ids.image_id.image_medium_url'
store=True
image_small_url
Char
related='image_ids.image_id.image_small_url'
store=True
No public methods.