Skip to content
Snippets Groups Projects
Commit 5abad42e authored by Bohdan Lisnenko's avatar Bohdan Lisnenko Committed by Jeremy Kersten
Browse files

[FIX] website_sale_comparison: keep attributes order consistent

Backport of 9298c576

+ adapt for v11

closes odoo/odoo#30305
parent 1c6c5042
Branches
Tags
No related merge requests found
......@@ -3,6 +3,7 @@ from odoo import http, _
from odoo.http import request
from odoo.addons.website_sale.controllers.main import WebsiteSale
import json
from collections import OrderedDict
class WebsiteSaleProductComparison(WebsiteSale):
......@@ -19,12 +20,12 @@ class WebsiteSaleProductComparison(WebsiteSale):
res = {}
for num, product in enumerate(products):
for var in product.attribute_line_ids:
for var in product.attribute_line_ids.sorted(lambda x: x.attribute_id.sequence):
cat_name = var.attribute_id.category_id.name or _('Uncategorized')
att_name = var.attribute_id.name
if not product.attribute_value_ids: # create_variant = False
continue
res.setdefault(cat_name, {}).setdefault(att_name, [' - '] * len(products))
res.setdefault(cat_name, OrderedDict()).setdefault(att_name, [' - '] * len(products))
val = product.attribute_value_ids.filtered(lambda x: x.attribute_id == var.attribute_id)
res[cat_name][att_name][num] = val[0].name
values['specs'] = res
......
......@@ -26,6 +26,6 @@ class ProductTemplate(models.Model):
def get_variant_groups(self):
res = OrderedDict()
for var in self.attribute_line_ids:
for var in self.attribute_line_ids.sorted(lambda x: x.attribute_id.sequence):
res.setdefault(var.attribute_id.category_id.name or _('Uncategorized'), []).append(var)
return res
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment