[FIX] website_sale: performance when creating a cart

- When creating an eCommerce cart using the Public User, the code tries
  to access all the sale orders linked to it.

  Depending on the count of sale orders linked to the partner, the
  loading can take a lot of time.

  To avoid this, we only search for the sale orders of connected users
  and we only retrieve the last one.
This commit is contained in:
Toufik Ben Jaa
2018-11-08 11:16:02 +01:00
parent ae3997b8bf
commit fe518f1fea
+4 -2
View File
@@ -161,8 +161,10 @@ class Website(models.Model):
affiliate_id = request.session.get('affiliate_id')
salesperson_id = affiliate_id if self.env['res.users'].sudo().browse(affiliate_id).exists() else request.website.salesperson_id.id
addr = partner.address_get(['delivery', 'invoice'])
if len(partner.sale_order_ids): # first = me
addr['delivery'] = partner.sale_order_ids[0].partner_shipping_id.id
if not request.website.is_public_user():
last_sale_order = self.env['sale.order'].search([('partner_id', '=', partner.id)], limit=1, order="date_order desc, id desc")
if last_sale_order: # first = me
addr['delivery'] = last_sale_order.partner_shipping_id.id
default_user_id = partner.parent_id.user_id.id or partner.user_id.id
values = {
'partner_id': partner.id,