Product Origin

product_origin
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/19.0/product_origin
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a field to associate the country and state of origin of
a product

<https://en.wikipedia.org/wiki/Country_of_origin>

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_template_form_view product.template xpath Inherits product.product_template_only_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
view_product_product_form product.product xpath Inherits product.product_normal_form_view
view_product_product_form_variant product.product xpath Inherits product.product_variant_easy_edit_view
Models touched (2)

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' ondelete='restrict' string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' ondelete='restrict' string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' compute='_compute_country_id' inverse='_inverse_country_id' store=True string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' compute='_compute_state_id' inverse='_inverse_state_id' store=True string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/18.0/product_origin
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a field to associate the country and state of origin of
a product

<https://en.wikipedia.org/wiki/Country_of_origin>

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_template_form_view product.template xpath Inherits product.product_template_only_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
view_product_product_form product.product xpath Inherits product.product_normal_form_view
view_product_product_form_variant product.product xpath Inherits product.product_variant_easy_edit_view
Models touched (2)

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' ondelete='restrict' string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' ondelete='restrict' string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' compute='_compute_country_id' inverse='_inverse_country_id' store=True string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' compute='_compute_state_id' inverse='_inverse_state_id' store=True string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/17.0/product_origin
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a field to associate the country and state of origin of
a product

<https://en.wikipedia.org/wiki/Country_of_origin>

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_template_form_view product.template xpath Inherits product.product_template_only_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
view_product_product_form product.product xpath Inherits product.product_normal_form_view
view_product_product_form_variant product.product xpath Inherits product.product_variant_easy_edit_view
Models touched (2)

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' ondelete='restrict' string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' ondelete='restrict' string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' compute='_compute_country_id' inverse='_inverse_country_id' store=True string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' compute='_compute_state_id' inverse='_inverse_state_id' store=True string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/16.0/product_origin
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, ACSONE SA/NV
COMMITTERS
COMMITTERSSylvain LE GAL, Weblate, OCA-git-bot, François Honoré, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_template_form_view product.template xpath Inherits product.product_template_only_form_view
product_template_search_view product.template filter Inherits product.product_template_search_view
view_product_product_form product.product xpath Inherits product.product_normal_form_view
view_product_product_form_variant product.product xpath Inherits product.product_variant_easy_edit_view
Models touched (2)

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' ondelete='restrict' string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' ondelete='restrict' string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')

New fields (3)
  • country_id Many2one → res.country
    comodel_name='res.country' compute='_compute_country_id' inverse='_inverse_country_id' store=True string='Country of Origin'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' compute='_compute_state_id' inverse='_inverse_state_id' store=True string='Country State of Origin'
  • state_id_domain Binary
    compute='_compute_state_id_domain' help='Technical field, used to compute dynamically state domain depending on the country.'
Public methods (2)
  • onchange_country_id(self)
    @api.onchange('country_id')
  • onchange_state_id(self)
    @api.onchange('state_id')