diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 41d1ebdb6accb3b6bd389d608c0c54491dfcbd24..a2a766b5136b72d0127aafd784f5e5a59cf347e4 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -210,6 +210,8 @@ class website_sale(http.Controller): context['pricelist'] = int(self.get_pricelist()) product = request.registry.get('product.template').browse(request.cr, request.uid, int(product), context=context) + variants = [(p.id, map(int, p.attribute_value_ids), p.price) for p in product.product_variant_ids] + values = { 'search': search, 'category': category, @@ -220,6 +222,7 @@ class website_sale(http.Controller): 'category_list': category_list, 'main_object': product, 'product': product, + 'variants': variants, } return request.website.render("website_sale.product", values) diff --git a/addons/website_sale/models/product.py b/addons/website_sale/models/product.py index 93c9ae8036a23e2b610070f572d988103b9c5c03..17a0943fa384ad8c14b8883ee72adb8f3556e3d5 100644 --- a/addons/website_sale/models/product.py +++ b/addons/website_sale/models/product.py @@ -112,13 +112,6 @@ class product_template(osv.Model): res[product.id] = "/shop/product/%s" % (product.id,) return res - def _get_available_variant_ids(self, cr, uid, ids, name, arg, context=None): - result = dict.fromkeys(ids, []) - for obj in self.browse(cr, uid, ids, context=context): - for p in obj.product_variant_ids: - result[obj.id].append([p.id, map(int,p.attribute_value_ids), p.price]) - return result - _columns = { # TODO FIXME tde: when website_mail/mail_thread.py inheritance work -> this field won't be necessary 'website_message_ids': fields.one2many( @@ -137,7 +130,6 @@ class product_template(osv.Model): 'website_style_ids': fields.many2many('product.style', string='Styles'), 'website_sequence': fields.integer('Sequence', help="Determine the display order in the Website E-commerce"), 'website_url': fields.function(_website_url, string="Website url", type="char"), - 'available_variant_ids': fields.function(_get_available_variant_ids, string='Available Variants'), 'public_categ_ids': fields.many2many('product.public.category', string='Public Category', help="Those categories are used to group similar products for e-commerce."), } diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index 256eab53d66dd58a2b4d68d48fdedfdb4f2683a6..8811f6c90f9cc4418029d432ba68e94d50fd3ff1 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -432,7 +432,7 @@ <template id="product_variants" inherit_id="website_sale.product" optional="enabled" name="Product Variants"> <xpath expr="//form[@action='/shop/cart/update']" position="replace"> - <form action="/shop/cart/update" class="js_add_cart_variants" method="POST" t-att-data-attribute_value_ids="product.available_variant_ids"> + <form action="/shop/cart/update" class="js_add_cart_variants" method="POST" t-att-data-attribute_value_ids="variants"> <input type="hidden" name="product_id" t-att-value="int(product.product_variant_ids[0]) if len(product.product_variant_ids) == 1 else '0'"/> <ul class="nav nav-pills nav-stacked"> <t t-foreach="product.attribute_line_ids" t-as="variant_id">