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,
'category_list': category_list,
'main_object': product,
'product': product,
+ 'variants': variants,
}
return request.website.render("website_sale.product", values)
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(
'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."),
}
<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">