From 22734f47d8a84d08c7f62ff2ca0f4241134bc9b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 28 Aug 2017 13:54:52 +0200 Subject: [PATCH] [IMP] website_quote: improve quote url management in customer portal * website_quote should not override all sale links from the customer portal to replace them by website_quote specific view. Indeed the quote view should be used only if the order has an active template defined on it; * do not override existing columns of the order page view on portal with same content; * implement redirection at route level by overriding the controller order route; --- addons/website_quote/controllers/main.py | 19 +++++++++- .../views/website_quote_templates.xml | 38 +++++-------------- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/addons/website_quote/controllers/main.py b/addons/website_quote/controllers/main.py index 859eb5f715c..f8c67177304 100644 --- a/addons/website_quote/controllers/main.py +++ b/addons/website_quote/controllers/main.py @@ -4,13 +4,28 @@ import base64 import werkzeug -from odoo import fields, http, _ +from odoo import exceptions, fields, http, _ from odoo.http import request -from odoo.addons.portal.controllers.portal import get_records_pager +from odoo.addons.portal.controllers.portal import CustomerPortal, get_records_pager from odoo.addons.portal.controllers.mail import _message_post_helper +class CustomerPortal(CustomerPortal): + + @http.route() + def portal_order_page(self, order=None, access_token=None, **kw): + try: + order_sudo = self._order_check_access(order, access_token=access_token) + except exceptions.AccessError: + pass + else: + if order_sudo.template_id and order_sudo.template_id.active: + return request.redirect('/quote/%s/%s' % (order, access_token or '')) + return super(CustomerPortal, self).portal_order_page(order=order, access_token=access_token, **kw) + + class sale_quote(http.Controller): + @http.route("/quote/", type='http', auth="user", website=True) def view_user(self, *args, **kwargs): return self.view(*args, **kwargs) diff --git a/addons/website_quote/views/website_quote_templates.xml b/addons/website_quote/views/website_quote_templates.xml index f7c9ef5a58b..d1b546bbc81 100644 --- a/addons/website_quote/views/website_quote_templates.xml +++ b/addons/website_quote/views/website_quote_templates.xml @@ -675,32 +675,14 @@ - +