| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/19.0/sale_exception |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Franco Leyes |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - 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 allows you attach several customizable exceptions to your sale order in a way that you can filter orders by exceptions type and fix them. This is especially useful in an scenario for mass sales order import because it's likely some orders have errors when you import them (like product not found in Odoo, wrong line format etc.) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
res_config_settings_view_form_sale_exception |
res.config.settings | setting | Inherits sale.res_config_settings_view_form | |
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
ondelete={'sale.order': 'cascade', 'sale.order.line': 'cascade'}
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
sale_exception_show_popup
Boolean
default=True
string='Sale Exception Popup'
No public methods.
sale_exception_show_popup
Boolean
readonly=False
related='company_id.sale_exception_show_popup'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (6)action_confirm(self)
action_draft(self)
detect_exceptions(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
exception_ids
Many2many → exception.rule
copy=False
readonly=True
string='Exceptions'
args: 'exception.rule'
exceptions_summary
Html
compute='_compute_exceptions_summary'
readonly=True
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
is_exception_danger
Boolean
compute='_compute_is_exception_danger'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/18.0/sale_exception |
| VERSION | |
| VERSION | 2.2.0 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Thierry Ducrest, Weblate, OCA-git-bot, Iván Todorovich, oca-ci, Matias Peralta, Rafael Lima |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - 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 allows you attach several customizable exceptions to your sale order in a way that you can filter orders by exceptions type and fix them. This is especially useful in an scenario for mass sales order import because it's likely some orders have errors when you import them (like product not found in Odoo, wrong line format etc.) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
res_config_settings_view_form_sale_exception |
res.config.settings | setting | Inherits sale.res_config_settings_view_form | |
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
ondelete={'sale.order': 'cascade', 'sale.order.line': 'cascade'}
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
sale_exception_show_popup
Boolean
default=True
string='Sale Exception Popup'
No public methods.
sale_exception_show_popup
Boolean
readonly=False
related='company_id.sale_exception_show_popup'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (6)action_confirm(self)
action_draft(self)
detect_exceptions(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
exception_ids
Many2many → exception.rule
copy=False
readonly=True
string='Exceptions'
args: 'exception.rule'
exceptions_summary
Html
compute='_compute_exceptions_summary'
readonly=True
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
is_exception_danger
Boolean
compute='_compute_is_exception_danger'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/17.0/sale_exception |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, chien |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - onboarding - product - uom - 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 allows you attach several customizable exceptions to your sale order in a way that you can filter orders by exceptions type and fix them. This is especially useful in an scenario for mass sales order import because it's likely some orders have errors when you import them (like product not found in Odoo, wrong line format etc.) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
ondelete={'sale.order': 'cascade', 'sale.order.line': 'cascade'}
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (6)action_confirm(self)
action_draft(self)
detect_exceptions(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
exception_ids
Many2many → exception.rule
copy=False
readonly=True
string='Exceptions'
args: 'exception.rule'
exceptions_summary
Html
compute='_compute_exceptions_summary'
readonly=True
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
is_exception_danger
Boolean
compute='_compute_is_exception_danger'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/16.0/sale_exception |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Denis Roussel, sbejaoui, David Alonso, Juan Jose Scarafia, Weblate, OCA-git-bot, oca-ci, hda, matiasperalta1, aliciagarzo |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:45 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - product - uom - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
ondelete={'sale.order': 'cascade', 'sale.order.line': 'cascade'}
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (7)action_confirm(self)
action_draft(self)
action_unlock(self)
detect_exceptions(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
exception_ids
Many2many → exception.rule
copy=False
readonly=True
string='Exceptions'
args: 'exception.rule'
exceptions_summary
Html
compute='_compute_exceptions_summary'
readonly=True
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
is_exception_danger
Boolean
compute='_compute_is_exception_danger'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/15.0/sale_exception |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Damien Crier, Weblate, OCA-git-bot, oca-ci, josep-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:33 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
ondelete={'sale.order': 'cascade', 'sale.order.line': 'cascade'}
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (7)action_confirm(self)
action_draft(self)
create(self, vals)
detect_exceptions(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
exception_ids
Many2many → exception.rule
copy=False
readonly=True
string='Exceptions'
args: 'exception.rule'
exceptions_summary
Html
compute='_compute_exceptions_summary'
readonly=True
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/14.0/sale_exception |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, Sébastien BEAU, Damien Crier, oca-travis, Weblate, OCA-git-bot, oca-ci, Alessandro Uffreduzzi, Hai Lang |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:57 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
ondelete={'sale.order': 'cascade', 'sale.order.line': 'cascade'}
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (7)action_confirm(self)
action_draft(self)
create(self, vals)
detect_exceptions(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
exception_ids
Many2many → exception.rule
copy=False
readonly=True
string='Exceptions'
args: 'exception.rule'
exceptions_summary
Html
compute='_compute_exceptions_summary'
readonly=True
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/13.0/sale_exception |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, Víctor Martínez, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Simone Orsi |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (7)action_confirm(self)
action_draft(self)
create(self, vals)
detect_exceptions(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
exception_ids
Many2many → exception.rule
copy=False
readonly=True
string='Exceptions'
args: 'exception.rule'
exceptions_summary
Html
compute='_compute_exceptions_summary'
readonly=True
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/12.0/sale_exception |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Guewen Baconnier, Renato Lima, Pedro M. Baeza, GitHub, sebalix, Daniel Reis, OCA Transbot, Florian da Costa, oca-travis, Weblate, OCA-git-bot, acm1pt-colorado |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:17 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - decimal_precision - uom - analytic - portal - http_routing - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | sheet | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (8)action_confirm(self)
action_draft(self)
create(self, vals)
detect_exceptions(self)
onchange_ignore_exception(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
ignore_exception
Boolean
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/11.0/sale_exception |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Alexandre Fayolle, Pedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Simone Orsi |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:57 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - account - product - decimal_precision - analytic - web_planner - portal - http_routing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | field | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
rule_group
Selection
selection_add=[('sale', 'Sale')]
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
rule_group
Selection
default='sale'
selection_add=[('sale', 'Sale')]
action_confirm(self)
action_draft(self)
create(self, vals)
onchange_ignore_exception(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/10.0/sale_exception |
| VERSION | |
| VERSION | 2.0.2 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, Sodexis |
| COMMITTERS | |
| COMMITTERS | Yannick Vaucher, Guewen Baconnier, Pedro M. Baeza, GitHub, Denis Roussel, OCA Transbot, Florian da Costa, oca-travis, Weblate, OCA-git-bot, hparfr, Mourad Elhadj Mimoune, Mourad EL HADJ MIMOUNE, Florent THOMAS |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:56 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/server-tools: - base_exception odoo/odoo: - sale - sales_team - base - base_setup - web_kanban - web - bus - web_tour - account - product - decimal_precision - report - analytic - web_planner - procurement |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | field | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
model
Selection
selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
sale_ids
Many2many → sale.order
string='Sales'
args: 'sale.order'
No public methods.
related_model_id
Many2one → sale.order
action_confirm(self)
No new fields.
Public methods (8)action_confirm(self)
action_draft(self)
create(self, vals)
detect_exceptions(self)
onchange_ignore_exception(self)
sale_check_exception(self)
test_all_draft_orders(self)
write(self, vals)
ignore_exception
Boolean
readonly=True
related='order_id.ignore_exception'
store=True
string='Ignore Exceptions'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/9.0/sale_exception |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Generic Modules/Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Sodexis |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Sodexis |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, Atchuthan, Sodexis |
| WEBSITE | |
| WEBSITE | http://www.akretion.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web_kanban - web - bus - account - product - decimal_precision - report - analytic - web_tip - web_planner - procurement |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form |
sale_exception.view_order_form | sale.order | field | Inherits sale.view_order_form |
view_order_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_order_tree |
view_quotation_tree |
sale_exception.view_order_tree | sale.order | field | Inherits sale.view_quotation_tree |
view_sale_exception_confirm |
Sale Exceptions | sale.exception.confirm | form | New |
view_sale_exception_form |
sale.exception.form | sale.exception | form | New |
view_sale_exception_tree |
sale.exception.tree | sale.exception | tree | New |
view_sales_order_filter |
sale_exception.view_sales_order_filter | sale.order | filter | Inherits sale.view_sales_order_filter |
active
Boolean
code
Text
default='\n# Python code. Use failed = True to block the sale order.\n# You can use the following variables :\n# - self: ORM model of the record which is checked\n# - order or line: browse_record of the sale order or sale order line\n# - object: same as order or line, browse_record of the sale order or\n# sale order line\n# - pool: ORM model pool (i.e. self.pool)\n# - time: Python time module\n# - cr: database cursor\n# - uid: current user id\n# - context: current context\n'
help='Python code executed to check if the exception apply or not. The code must apply block = True to apply the exception.'
args: 'Python Code'
description
Text
translate=True
args: 'Description'
model
Selection
required=True
string='Apply on'
args: [('sale.order', 'Sale Order'), ('sale.order.line', 'Sale Order Line')]
name
Char
required=True
translate=True
args: 'Exception Name'
sale_order_ids
Many2many → sale.order
readonly=True
string='Sale Orders'
args: 'sale.order', 'sale_order_exception_rel', 'exception_id', 'sale_order_id'
sequence
Integer
help='Gives the sequence order when applying the test'
string='Sequence'
No public methods.
exception_ids
Many2many → sale.exception
readonly=True
string='Exceptions to resolve'
args: 'sale.exception'
ignore
Boolean
sale_id
Many2one → sale.order
action_confirm(self)
default_get(self, field_list)
exception_ids
Many2many → sale.exception
string='Exceptions'
args: 'sale.exception', 'sale_order_exception_rel', 'sale_order_id', 'exception_id'
ignore_exception
Boolean
copy=False
args: 'Ignore Exceptions'
main_exception_id
Many2one → sale.exception
compute='_get_main_error'
store=True
string='Main Exception'
args: 'sale.exception'
action_confirm(self)
action_draft(self)
check_sale_exception_constrains(self)
detect_exceptions(self)
onchange_ignore_exception(self)
test_all_draft_orders(self)
test_exceptions(self)