From 13b104bf9e66aaaa7f77345da4efc1c1af7f32cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Mon, 14 Jan 2019 11:08:12 +0000 Subject: [PATCH] [FIX] sale,sale_management: prevent traceback on get_access_action The field `sale_order_template_id` is only defined on `sale_management`, so calling that method without `sale_management` would crash (traceback). The method was in `sale_management` in the first place but commit 34c47eecd30bdf66bc057bf285a51cff956cd0e8 happened and some mistakes were made that day. PR: #30000 closes odoo/odoo#30294 --- addons/sale/models/sale.py | 15 --------------- addons/sale_management/models/sale_order.py | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index 1e5a64c4fec..7e3e917b5a4 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -873,21 +873,6 @@ class SaleOrder(models.Model): self.ensure_one() return '%s %s' % (self.type_name, self.name) - @api.multi - def get_access_action(self, access_uid=None): - """ Instead of the classic form view, redirect to the online quote if it exists. """ - self.ensure_one() - user = access_uid and self.env['res.users'].sudo().browse(access_uid) or self.env.user - - if not self.sale_order_template_id or (not user.share and not self.env.context.get('force_website')): - return super(SaleOrder, self).get_access_action(access_uid) - return { - 'type': 'ir.actions.act_url', - 'url': self.get_portal_url(), - 'target': 'self', - 'res_id': self.id, - } - def _get_share_url(self, redirect=False, signup_partner=False, pid=None): self.ensure_one() if self.state not in ['sale', 'done']: diff --git a/addons/sale_management/models/sale_order.py b/addons/sale_management/models/sale_order.py index bc32d716dab..afa13aed50d 100644 --- a/addons/sale_management/models/sale_order.py +++ b/addons/sale_management/models/sale_order.py @@ -114,6 +114,21 @@ class SaleOrder(models.Model): self.sale_order_template_id.mail_template_id.send_mail(order.id) return res + @api.multi + def get_access_action(self, access_uid=None): + """ Instead of the classic form view, redirect to the online quote if it exists. """ + self.ensure_one() + user = access_uid and self.env['res.users'].sudo().browse(access_uid) or self.env.user + + if not self.sale_order_template_id or (not user.share and not self.env.context.get('force_website')): + return super(SaleOrder, self).get_access_action(access_uid) + return { + 'type': 'ir.actions.act_url', + 'url': self.get_portal_url(), + 'target': 'self', + 'res_id': self.id, + } + class SaleOrderLine(models.Model): _inherit = "sale.order.line"