Product Status

product_status
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_status
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Maksym Yankin
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_state
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module compute a status on product based on some date field
displayed on the Sales tab. This module will deactivate all default
state in product_state, implement new default data The option to use the
product-attribute/product_state module was considered but because the
status is computed based on today. It does not work well with a stored
fields and also means there is no need for creation of state from the
user.

By order of importance, the status is computed by: - *End-of-life* -
*Discontinued until* - *New until*

*End-of-life* has priority over the other dates. *Discontinued-until*
has priority over *New until*.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_normal_form_view product.product group Inherits product.product_normal_form_view
product_product_tree_view product.product field Inherits product.product_product_tree_view
product_template_form_view product.template.form.inherit product.template field Inherits product_state.product_template_form_view
product_template_only_form_view product.template group Inherits product.product_template_only_form_view
Models touched (3)

New fields (9)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • has_status_date Boolean
    compute='_compute_has_status_date' store=False
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
  • product_state_id Many2one → product.state
    comodel_name='product.state' default=<expr> group_expand='_read_group_state_id' help='Select a state for this product' index=True inverse='_inverse_product_state_id' string='State' tracking=10
  • state Char
    compute='_compute_product_state' index=True inverse='_inverse_product_state' readonly=True store=True string='Product Status'
  • tmpl_discontinued_until Date
    related='product_tmpl_id.discontinued_until' string='Template Discontinued until'
  • tmpl_end_of_life_date Date
    related='product_tmpl_id.end_of_life_date' string='Template End-of-life'
  • tmpl_new_until Date
    related='product_tmpl_id.new_until' string='Template New until'
Public methods (0)

No public methods.

New fields (0)

No new fields.

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

New fields (3)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
Public methods (0)

No public methods.

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_status
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSAkim Juillerat, Weblate, OCA-git-bot, oca-ci, natuan9
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_state
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 compute a status on product based on some date field
displayed on the Sales tab. This module will deactivate all default
state in product_state, implement new default data The option to use the
product-attribute/product_state module was considered but because the
status is computed based on today. It does not work well with a stored
fields and also means there is no need for creation of state from the
user.

By order of importance, the status is computed by: - *End-of-life* -
*Discontinued until* - *New until*

*End-of-life* has priority over the other dates. *Discontinued-until*
has priority over *New until*.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_normal_form_view product.product group Inherits product.product_normal_form_view
product_product_tree_view product.product field Inherits product.product_product_tree_view
product_template_form_view product.template.form.inherit product.template field Inherits product_state.product_template_form_view
product_template_only_form_view product.template group Inherits product.product_template_only_form_view
Models touched (3)

New fields (9)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • has_status_date Boolean
    compute='_compute_has_status_date' store=False
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
  • product_state_id Many2one → product.state
    comodel_name='product.state' default=<expr> group_expand='_read_group_state_id' help='Select a state for this product' index=True inverse='_inverse_product_state_id' string='State' tracking=10
  • state Char
    compute='_compute_product_state' index=True inverse='_inverse_product_state' readonly=True store=True string='Product Status'
  • tmpl_discontinued_until Date
    related='product_tmpl_id.discontinued_until' string='Template Discontinued until'
  • tmpl_end_of_life_date Date
    related='product_tmpl_id.end_of_life_date' string='Template End-of-life'
  • tmpl_new_until Date
    related='product_tmpl_id.new_until' string='Template New until'
Public methods (0)

No public methods.

New fields (0)

No new fields.

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

New fields (3)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
Public methods (0)

No public methods.

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_status
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Christopher Rogos, Henry Backman, chien
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_state_sale
    - product_state
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - sale
    - sales_team
    - account_payment
    - account
    - onboarding
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module compute a status on product based on some date field
displayed on the Sales tab. This module will deactivate all default
state in product_state, implement new default data The option to use the
product-attribute/product_state module was considered but because the
status is computed based on today. It does not work well with a stored
fields and also means there is no need for creation of state from the
user.

By order of importance, the status is computed by: - *End-of-life* -
*Discontinued until* - *New until*

*End-of-life* has priority over the other dates. *Discontinued-until*
has priority over *New until*.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_normal_form_view product.product group Inherits product.product_normal_form_view
product_product_tree_view product.product field Inherits product.product_product_tree_view
product_template_form_view product.template.form.inherit product.template field Inherits product_state.product_template_form_view
product_template_only_form_view product.template group Inherits product.product_template_only_form_view
Models touched (3)

New fields (9)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • has_status_date Boolean
    compute='_compute_has_status_date' store=False
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
  • product_state_id Many2one → product.state
    comodel_name='product.state' default=<expr> group_expand='_read_group_state_id' help='Select a state for this product' index=True inverse='_inverse_product_state_id' string='State' tracking=10
  • state Char
    compute='_compute_product_state' index=True inverse='_inverse_product_state' readonly=True store=True string='Product Status'
  • tmpl_discontinued_until Date
    related='product_tmpl_id.discontinued_until' string='Template Discontinued until'
  • tmpl_end_of_life_date Date
    related='product_tmpl_id.end_of_life_date' string='Template End-of-life'
  • tmpl_new_until Date
    related='product_tmpl_id.new_until' string='Template New until'
Public methods (0)

No public methods.

New fields (0)

No new fields.

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

New fields (3)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/15.0/product_status
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Alessio Renda, Tran Anh Tuan
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_state
odoo/odoo:
    - product
    - base
    - mail
    - 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 Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_normal_form_view product.product group Inherits product.product_normal_form_view
product_product_tree_view product.product field Inherits product.product_product_tree_view
product_template_form_view product.template.form.inherit product.template field Inherits product_state.product_template_form_view
product_template_only_form_view product.template group Inherits product.product_template_only_form_view
Models touched (3)

New fields (9)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • has_status_date Boolean
    compute='_compute_has_status_date' store=False
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
  • product_state_id Many2one → product.state
    comodel_name='product.state' default=<expr> group_expand='_read_group_state_id' help='Select a state for this product' index=True inverse='_inverse_product_state_id' string='State' tracking=10
  • state Char
    compute='_compute_product_state' index=True inverse='_inverse_product_state' readonly=True store=True string='Product Status'
  • tmpl_discontinued_until Date
    related='product_tmpl_id.discontinued_until' string='Template Discontinued until'
  • tmpl_end_of_life_date Date
    related='product_tmpl_id.end_of_life_date' string='Template End-of-life'
  • tmpl_new_until Date
    related='product_tmpl_id.new_until' string='Template New until'
Public methods (0)

No public methods.

New fields (0)

No new fields.

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

New fields (3)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/14.0/product_status
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSSébastien Alix, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Alessandro Uffreduzzi, Hai Lang
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_state
odoo/odoo:
    - product
    - base
    - mail
    - 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 Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_normal_form_view product.product group Inherits product.product_normal_form_view
product_product_tree_view product.product field Inherits product.product_product_tree_view
product_template_form_view product.template.form.inherit product.template field Inherits product_state.product_template_form_view
product_template_only_form_view product.template group Inherits product.product_template_only_form_view
Models touched (3)

New fields (9)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • has_status_date Boolean
    compute='_compute_has_status_date' store=False
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
  • product_state_id Many2one → product.state
    comodel_name='product.state' default=<expr> group_expand='_read_group_state_id' help='Select a state for this product' index=True inverse='_inverse_product_state_id' string='State' tracking=10
  • state Char
    compute='_compute_product_state' index=True inverse='_inverse_product_state' readonly=True store=True string='Product Status'
  • tmpl_discontinued_until Date
    related='product_tmpl_id.discontinued_until' string='Template Discontinued until'
  • tmpl_end_of_life_date Date
    related='product_tmpl_id.end_of_life_date' string='Template End-of-life'
  • tmpl_new_until Date
    related='product_tmpl_id.new_until' string='Template New until'
Public methods (0)

No public methods.

New fields (0)

No new fields.

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

New fields (3)
  • discontinued_until Date
    help='When the product is discontinued for a certain time, to warn your client/avoid order during this downtime.' string='Discontinued until'
  • end_of_life_date Date
    help='When the product is end-of-life, and you want to warn your client/avoid order in the future.' string='End-of-life'
  • new_until Date
    help='New product, and you want to warn your client for a certain time' string='New until'
Public methods (0)

No public methods.