From a97d9e7c0a3ca758bcfbce328e0f3fbb45d40b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 9 Aug 2017 13:09:10 +0200 Subject: [PATCH] [IMP] sale: make sale order use portal.mixin Adapt sale.order model in order to use the recently introduced portal mixin : * website_url field is replaced by portal_url field defined in portal mixin; _compute_website_url is replaced by _compute_portal_url that does basically the same computation; * get_mail_url method used in emails now uses the get_share_url of portal mixin; --- addons/sale/models/sale.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index 274eaf43db2..fbfe45bcdb1 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -17,7 +17,7 @@ from odoo.addons import decimal_precision as dp class SaleOrder(models.Model): _name = "sale.order" - _inherit = ['mail.thread', 'mail.activity.mixin'] + _inherit = ['mail.thread', 'mail.activity.mixin', 'portal.mixin'] _description = "Sales Order" _order = 'date_order desc, id desc' @@ -119,10 +119,6 @@ class SaleOrder(models.Model): access_token = fields.Char( 'Security Token', copy=False, default=_get_default_access_token) - website_url = fields.Char( - 'Website URL', compute='_website_url', - help='The full URL to access the document using the customer portal.') - state = fields.Selection([ ('draft', 'Quotation'), ('sent', 'Quotation Sent'), @@ -170,9 +166,10 @@ class SaleOrder(models.Model): product_id = fields.Many2one('product.product', related='order_line.product_id', string='Product') - def _website_url(self): - for so in self: - so.website_url = '/my/orders/%s' % (so.id) + def _compute_portal_url(self): + super(SaleOrder, self)._compute_portal_url() + for order in self: + order.portal_url = '/my/orders/%s' % (order.id) @api.model def _get_customer_lead(self, product_tmpl_id): @@ -588,14 +585,7 @@ class SaleOrder(models.Model): return super(SaleOrder, self).get_access_action(access_uid) def get_mail_url(self): - self.ensure_one() - params = { - 'model': self._name, - 'res_id': self.id, - 'access_token': self.access_token, - } - params.update(self.partner_id.signup_get_auth_param()[self.partner_id.id]) - return '/mail/view?' + url_encode(params) + return self.get_share_url() @api.multi def _notification_recipients(self, message, groups):