TIP: You can type at any time to perform a new search.
Online Proposals
website_quote · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Website
- Folder size
- 5.12 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://www.odoo.com/page/quote-builder
- Last tracking update
- 2026-08-07 05:03:19
- Authors
- Maintainers
- None
- Committers
- Xavier Morel, Olivier Dony, Christophe Simonis, Thibault Delavallée, Martin Trigaux, Odoo Translation Bot, Denis Ledoux, Joren Van Onder, Nicolas Martinelli, Jérome Maes, Richard Mathot, qdp-odoo, Jeremy Kersten, GitHub, Lucas Perais (lpe), Damien Bouvy, Yannick Tivisse, qsm-odoo, Odoo Online, Laurent Smet, Toufik Benjaa, tbe-odoo, len-odoo, Jorge Pinna Puissant, Denis Vermylen, fda-odoo, Rémi Rahir
Code Analysis ⓘ
Views touched (20)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_editor |
Website Quote Editor assets | ir.ui.view | qweb | Inherits web_editor.assets_editor |
assets_frontend |
Website Quote frontend assets | ir.ui.view | qweb | Inherits website.assets_frontend |
change_quantity |
Change Quantity | ir.ui.view | qweb | Inherits website_quote.pricing |
chatter |
Allow Comments & History | ir.ui.view | qweb | Inherits website_quote.so_quotation |
navigation_menu |
navigation_menu | ir.ui.view | qweb | New |
optional_products |
optional_products | ir.ui.view | qweb | New |
payment_confirmation_status |
payment_confirmation_status | ir.ui.view | qweb | New |
portal_my_quotations_inherit_quote |
portal_my_quotations_inherit_quote | ir.ui.view | qweb | Inherits sale.portal_my_quotations |
pricing |
Price | ir.ui.view | qweb | New |
report_quote |
report_quote | ir.ui.view | qweb | New |
report_saleorder_validity_date |
report_saleorder_validity_date | ir.ui.view | qweb | Inherits sale.report_saleorder_document |
res_config_settings_view_form |
res.config.settings.view.form.inherit.website.quote | res.config.settings | form | Inherits sale.res_config_settings_view_form |
sale_order_form_quote |
sale.order.form.payment | sale.order | form | Inherits sale.view_order_form |
so_quotation |
Product Quotation | ir.ui.view | qweb | New |
so_quotation_content |
Quotation Content | ir.ui.view | qweb | New |
so_template |
SO Template | ir.ui.view | qweb | New |
view_sale_quote_template_form |
sale.quote.template.form | sale.quote.template | form | New |
view_sale_quote_template_search |
sale.quote.template.search | sale.quote.template | search | New |
view_sale_quote_template_tree |
sale.quote.template.tree | sale.quote.template | tree | New |
website.layout_footer_copyright |
Footer Copyright | ir.ui.view | qweb | Inherits website.layout |
HTTP endpoints (11)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
| (inherited route override) | CustomerPortal.portal_order_page |
inherited | http | ALL | |
/quote/add_line/<int:option_id>/<int:order_id>/<token> |
sale_quote.add |
public | http | ALL | sudo website |
/quote/<int:order_id>/<token>/decline |
sale_quote.decline |
public | http | POST | sudo website |
/quote/<int:order_id>/transaction/token |
sale_quote.payment_token |
public | http | ALL | sudo website |
/quote/<int:order_id>/transaction/json_token |
sale_quote.payment_token_json |
public | json | ALL | sudo |
/quote/<int:order_id>/transaction/ |
sale_quote.payment_transaction_token |
public | json | ALL | sudo website |
/quote/template/<model('sale.quote.template'):quote> |
sale_quote.template_view |
user | http | ALL | website |
/quote/update_line |
sale_quote.update |
public | json | ALL | website |
/quote/update_line_dict |
sale_quote.update_line_dict |
public | json | ALL | sudo website |
/quote/<int:order_id>/<token> |
sale_quote.view |
public | http | ALL | sudo website |
/quote/<int:order_id> |
sale_quote.view_user |
user | http | ALL | website |
Models touched (9)
New fields (0)
No new fields.
Public methods (1)-
unlink(self)@api.multi
New fields (2)
-
quote_descriptionHtmlsanitize_attributes=Falsetranslate=html_translate args: 'Description for the quote' -
website_descriptionHtmlsanitize_attributes=False args: 'Description for the website'
No public methods.
New fields (1)
-
default_template_idMany2one → sale.quote.templatedefault_model='sale.order'string='Default Template' args: 'sale.quote.template'
No public methods.
New fields (6)
-
amount_undiscountedFloatcompute='_compute_amount_undiscounted'digits=0 args: 'Amount Before Discount' -
optionsOne2many → sale.order.optioncopy=Truereadonly=Truestates={'draft': [('readonly', False)], 'sent': [('readonly', False)]} args: 'sale.order.option', 'order_id', 'Optional Products Lines' -
quote_viewedBooleanargs: 'Quotation Viewed' -
require_paymentSelectiondefault=_get_default_online_paymenthelp='Choose how you want to confirm an order to launch the delivery process. You can either request a digital signature or an upfront payment. With a digital signature, you can request the payment when issuing the invoice.'string='Confirmation Mode' args: [(0, 'Online Signature'), (1, 'Online Payment')] -
template_idMany2one → sale.quote.templatedefault=_get_default_templatereadonly=Truestates={'draft': [('readonly', False)], 'sent': [('readonly', False)]} args: 'sale.quote.template', 'Quotation Template' -
website_descriptionHtmlsanitize_attributes=Falsetranslate=html_translate args: 'Description'
-
action_confirm(self)@api.multi -
copy(self, default=None)@api.multi -
get_access_action(self, access_uid=None)@api.multiInstead of the classic form view, redirect to the online quote if it exists. -
get_mail_url(self) -
get_portal_confirmation_action(self)Template override default behavior of pay / sign chosen in sales settings -
onchange_partner_id(self)@api.onchange('partner_id') -
onchange_template_id(self)@api.onchange('template_id') -
onchange_update_description_lang(self)@api.onchange('partner_id') -
open_quotation(self)@api.multi
New fields (2)
-
option_line_idOne2many → sale.order.optionargs: 'sale.order.option', 'line_id', 'Optional Products Lines' -
website_descriptionHtmlsanitize=Falsetranslate=html_translate args: 'Line Description'
-
create(self, values)@api.model -
product_id_change(self)@api.onchange('product_id') -
write(self, values)@api.multi
New fields (11)
-
discountFloatdigits=dp.get_precision('Discount') args: 'Discount (%)' -
layout_category_idMany2one → sale.layout_categorystring='Section' args: 'sale.layout_category' -
line_idMany2one → sale.order.lineon_delete='set null' args: 'sale.order.line' -
nameTextrequired=True args: 'Description' -
order_idMany2one → sale.orderindex=Trueondelete='cascade' args: 'sale.order', 'Sales Order Reference' -
price_unitFloatdigits=dp.get_precision('Product Price')required=True args: 'Unit Price' -
product_idMany2one → product.productdomain=[('sale_ok', '=', True)] args: 'product.product', 'Product' -
quantityFloatdefault=1digits=dp.get_precision('Product UoS')required=True args: 'Quantity' -
sequenceIntegerhelp='Gives the sequence order when displaying a list of suggested product.' args: 'Sequence' -
uom_idMany2one → product.uomrequired=True args: 'product.uom', 'Unit of Measure ' -
website_descriptionHtmlsanitize_attributes=Falsetranslate=html_translate args: 'Line Description'
-
button_add_to_order(self)@api.multi
New fields (10)
-
discountFloatdefault=0.0digits=dp.get_precision('Discount') args: 'Discount (%)' -
layout_category_idMany2one → sale.layout_categorystring='Section' args: 'sale.layout_category' -
nameTextrequired=Truetranslate=True args: 'Description' -
price_unitFloatdigits=dp.get_precision('Product Price')required=True args: 'Unit Price' -
product_idMany2one → product.productdomain=[('sale_ok', '=', True)]required=True args: 'product.product', 'Product' -
product_uom_idMany2one → product.uomrequired=True args: 'product.uom', 'Unit of Measure ' -
product_uom_qtyFloatdefault=1digits=dp.get_precision('Product UoS')required=True args: 'Quantity' -
quote_idMany2one → sale.quote.templateindex=Trueondelete='cascade'required=True args: 'sale.quote.template', 'Quotation Template Reference' -
sequenceIntegerdefault=10help='Gives the sequence order when displaying a list of sale quote lines.' args: 'Sequence' -
website_descriptionHtmlrelated='product_id.product_tmpl_id.quote_description'translate=html_translate args: 'Line Description'
-
create(self, values)@api.model -
write(self, values)@api.multi
New fields (9)
-
discountFloatdigits=dp.get_precision('Discount') args: 'Discount (%)' -
layout_category_idMany2one → sale.layout_categorystring='Section' args: 'sale.layout_category' -
nameTextrequired=Truetranslate=True args: 'Description' -
price_unitFloatdigits=dp.get_precision('Product Price')required=True args: 'Unit Price' -
product_idMany2one → product.productdomain=[('sale_ok', '=', True)]required=True args: 'product.product', 'Product' -
quantityFloatdefault=1digits=dp.get_precision('Product UoS')required=True args: 'Quantity' -
template_idMany2one → sale.quote.templateindex=Trueondelete='cascade'required=True args: 'sale.quote.template', 'Quotation Template Reference' -
uom_idMany2one → product.uomrequired=True args: 'product.uom', 'Unit of Measure ' -
website_descriptionHtmlsanitize_attributes=Falsetranslate=html_translate args: 'Option Description'
No public methods.
New fields (9)
-
activeBooleandefault=Truehelp='If unchecked, it will allow you to hide the quotation template without removing it.' -
mail_template_idMany2one → mail.templatedomain=[('model', '=', 'sale.order')]help='This e-mail template will be sent on confirmation. Leave empty to send nothing.' args: 'mail.template', 'Confirmation Mail' -
nameCharrequired=True args: 'Quotation Template' -
noteTextargs: 'Terms and conditions' -
number_of_daysIntegerhelp='Number of days for the validity date computation of the quotation' args: 'Quotation Duration' -
optionsOne2many → sale.quote.optioncopy=True args: 'sale.quote.option', 'template_id', 'Optional Products Lines' -
quote_lineOne2many → sale.quote.linecopy=True args: 'sale.quote.line', 'quote_id', 'Quotation Template Lines' -
require_paymentSelectiondefault=0help='Choose how you want to confirm an order to launch the delivery process. You can either request a digital signature or an upfront payment. With a digital signature, you can request the payment when issuing the invoice.'string='Confirmation Mode' args: [(0, 'Online Signature'), (1, 'Online Payment')] -
website_descriptionHtmlsanitize_attributes=Falsetranslate=html_translate args: 'Description'
-
open_template(self)@api.multi
Loading…
Loading…
Loading…