| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/16.0/product_expiry_configurable |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | GitHub, Denis Roussel, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product_expiry - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view_inherit |
product.category.form (in product_expiry_configurable) | product.category | group | Inherits product.product_category_form_view |
search_product_lot_filter_inherit_product_expiry |
stock.lot.search.inherit (in product_expiry_configurable) | stock.lot | xpath | Inherits product_expiry.search_product_lot_filter_inherit_product_expiry |
alert_time
Integer
compute='_compute_date_fields'
help='Number of days before an alert should be raised on the lot/serial number.'
readonly=False
recursive=True
store=True
string='Product Alert Time'
expiration_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.'
readonly=False
recursive=True
store=True
string='Product Expiration Time'
removal_time
Integer
compute='_compute_date_fields'
help='Number of days before an alert should be raised on the lot/serial number.'
readonly=False
recursive=True
store=True
string='Product Removal Time'
use_expiration_date
Boolean
compute='_compute_use_expiration_date'
readonly=False
store=True
use_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.'
readonly=False
recursive=True
store=True
string='Product Use Time'
No public methods.
alert_time
Integer
compute='_compute_date_fields'
readonly=False
store=True
expiration_time
Integer
compute='_compute_date_fields'
readonly=False
store=True
removal_time
Integer
compute='_compute_date_fields'
readonly=False
store=True
use_expiration_date
Boolean
compute='_compute_use_expiration_date'
readonly=False
store=True
use_time
Integer
compute='_compute_date_fields'
readonly=False
store=True
No public methods.
expiration_date_reminded
Boolean
default=False
removal_date_reminded
Boolean
default=False
use_date_reminded
Boolean
default=False
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/14.0/product_expiry_configurable |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product_expiry - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view_inherit |
product.category.form (in product_expiry_configurable) | product.category | group | Inherits product.product_category_form_view |
search_product_lot_filter_inherit_product_expiry |
stock.production.lot.search.inherit | stock.production.lot | xpath | Inherits product_expiry.search_product_lot_filter_inherit_product_expiry |
view_product_form_expiry |
product.template.form (in product_expiry_expiration_configurable) | product.template | label | Inherits product_expiry.view_product_form_expiry |
alert_time
Integer
compute='_compute_date_fields'
help='Number of days before an alert should be raised on the lot/serial number.'
string='Product Alert Time'
compute_dates_from
Selection
compute='_compute_compute_dates_from'
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if expiration_date is selected, the dates will be computed taking as reference the lot's expiration_date."
selection=[('current_date', 'Current Date'), ('expiration_date', 'Expiration Time Date')]
expiration_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.'
string='Product Expiration Time'
parent_alert_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before an alert should be raised on the lot/serial number.'
string='Parent Product Alert Time'
parent_compute_dates_from
Selection
compute='_compute_parent_compute_dates_from'
selection=[('current_date', 'Current Date'), ('expiration_date', 'Expiration Time Date')]
parent_expiration_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.'
string='Parent Product Expiration Time'
parent_removal_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.'
string='Parent Product Removal Time'
parent_use_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.'
string='Parent Product Use Time'
removal_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.'
string='Product Removal Time'
specific_alert_time
Integer
help='Number of days before an alert should be raised on the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Alert Time'
specific_compute_dates_from
Selection
help='If not provided, the one defined on the parent is used.'
selection=[('current_date', 'Current Date'), ('expiration_date', 'Expiration Time Date')]
specific_expiration_time
Integer
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Expiration Time'
specific_removal_time
Integer
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Removal Time'
specific_use_time
Integer
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Use Time'
use_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.'
string='Product Use Time'
No public methods.
alert_time
Integer
compute='_compute_date_fields'
category_alert_time
Integer
help='Number of days before an alert should be raised on the lot/serial number.'
related='categ_id.alert_time'
string='Category Product Alert Time'
category_compute_dates_from
Selection
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if expiration_date is selected, the dates will be computed taking as reference the lot's expiration_date."
related='categ_id.compute_dates_from'
string='Category compute dates from'
category_expiration_time
Integer
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.'
related='categ_id.expiration_time'
string='Category Product Expiration Time'
category_removal_time
Integer
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.'
related='categ_id.removal_time'
string='Category Product Removal Time'
category_use_time
Integer
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.'
related='categ_id.use_time'
string='Category Product Use Time'
compute_dates_from
Selection
compute='_compute_compute_dates_from'
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if expiration_time is selected, the dates will be computed taking as reference the lot's expiration_time."
selection=[('current_date', 'Current Date'), ('expiration_date', 'Expiration Date')]
expiration_time
Integer
compute='_compute_date_fields'
removal_time
Integer
compute='_compute_date_fields'
specific_alert_time
Integer
help='Number of days before an alert should be raised on the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Alert Time'
specific_compute_dates_from
Selection
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if expiration_time is selected, the dates will be computed taking as reference the lot's expiration_date."
selection=[('current_date', 'Current Date'), ('expiration_date', 'Expiration Date')]
specific_expiration_time
Integer
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Expiration Time'
specific_removal_time
Integer
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Removal Time'
specific_use_time
Integer
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Use Time'
use_time
Integer
compute='_compute_date_fields'
No public methods.
expiration_date_reminded
Boolean
default=False
removal_date_reminded
Boolean
default=False
use_date_reminded
Boolean
default=False
create(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/13.0/product_expiry_configurable |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Alba Riera |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product_expiry - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_form_view_inherit |
product.category.form (in product_expiry_configurable) | product.category | group | Inherits product.product_category_form_view |
search_product_lot_filter_inherit_product_expiry |
stock.production.lot.search.inherit | stock.production.lot | xpath | Inherits product_expiry.search_product_lot_filter_inherit_product_expiry |
view_product_form_expiry |
product.template.form (in product_expiry_life_configurable) | product.template | label | Inherits product_expiry.view_product_form_expiry |
alert_time
Integer
compute='_compute_date_fields'
help='Number of days before an alert should be raised on the lot/serial number.'
string='Product Alert Time'
compute_dates_from
Selection
compute='_compute_compute_dates_from'
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if life_date is selected, the dates will be computed taking as reference the lot's life_date."
selection=[('current_date', 'Current Date'), ('life_date', 'Life Time Date')]
life_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.'
string='Product Life Time'
parent_alert_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before an alert should be raised on the lot/serial number.'
string='Parent Product Alert Time'
parent_compute_dates_from
Selection
compute='_compute_parent_compute_dates_from'
selection=[('current_date', 'Current Date'), ('life_date', 'Life Time Date')]
parent_life_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.'
string='Parent Product Life Time'
parent_removal_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.'
string='Parent Product Removal Time'
parent_use_time
Integer
compute='_compute_parent_date_fields'
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.'
string='Parent Product Use Time'
removal_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.'
string='Product Removal Time'
specific_alert_time
Integer
help='Number of days before an alert should be raised on the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Alert Time'
specific_compute_dates_from
Selection
help='If not provided, the one defined on the parent is used.'
selection=[('current_date', 'Current Date'), ('life_date', 'Life Time Date')]
specific_life_time
Integer
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Life Time'
specific_removal_time
Integer
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Removal Time'
specific_use_time
Integer
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number. If not provided, the one defined on the parent is used.'
string='Specific Product Use Time'
use_time
Integer
compute='_compute_date_fields'
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.'
string='Product Use Time'
No public methods.
alert_time
Integer
compute='_compute_date_fields'
category_alert_time
Integer
help='Number of days before an alert should be raised on the lot/serial number.'
related='categ_id.alert_time'
string='Category Product Alert Time'
category_compute_dates_from
Selection
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if life_date is selected, the dates will be computed taking as reference the lot's life_date."
related='categ_id.compute_dates_from'
selection=[('current_date', 'Current Date'), ('life_date', 'Life Date')]
string='Category Compute Dates From'
category_life_time
Integer
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.'
related='categ_id.life_time'
string='Category Product Life Time'
category_removal_time
Integer
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.'
related='categ_id.removal_time'
string='Category Product Removal Time'
category_use_time
Integer
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.'
related='categ_id.use_time'
string='Category Product Use Time'
compute_dates_from
Selection
compute='_compute_compute_dates_from'
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if life_date is selected, the dates will be computed taking as reference the lot's life_date."
selection=[('current_date', 'Current Date'), ('life_date', 'Life Date')]
life_time
Integer
compute='_compute_date_fields'
removal_time
Integer
compute='_compute_date_fields'
specific_alert_time
Integer
help='Number of days before an alert should be raised on the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Alert Time'
specific_compute_dates_from
Selection
help="If current_date is selected, the dates will be computed taking as reference the current date when the lot is created.Whereas if life_date is selected, the dates will be computed taking as reference the lot's life_date."
selection=[('current_date', 'Current Date'), ('life_date', 'Life Date')]
specific_life_time
Integer
help='Number of days before the goods may become dangerous and must not be consumed. It will be computed on the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Life Time'
specific_removal_time
Integer
help='Number of days before the goods should be removed from the stock. It will be computed on the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Removal Time'
specific_use_time
Integer
help='Number of days before the goods starts deteriorating, without being dangerous yet. It will be computed using the lot/serial number.If not provided, the one defined on the category is used.'
string='Specific Product Use Time'
use_time
Integer
compute='_compute_date_fields'
No public methods.
life_date_reminded
Boolean
default=False
removal_date_reminded
Boolean
default=False
use_date_reminded
Boolean
default=False
create(self, vals)