From adef9bc3df4a9e38591284bad84b44089dab74f1 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 2 Oct 2013 18:28:10 +0200 Subject: [PATCH] [FIX] website_sale: edit, suggested products bzr revid: chm@openerp.com-20131002162810-cjo5r9itmuc0x71o --- addons/website_sale/controllers/main.py | 6 ++- addons/website_sale/product.py | 9 +++++ .../static/src/js/website_sale.js | 2 +- addons/website_sale/views/website_sale.xml | 38 +++++++++++++++++-- 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index a1f30f14d06..e6726761b3e 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -379,10 +379,14 @@ class Ecommerce(http.Controller): self.change_pricelist(post.get('promo')) suggested_ids = [] + product_ids = [] if order: for line in order.order_line: suggested_ids += [p.id for p in line.product_id and line.product_id.suggested_product_ids or [] for line in order.order_line] - suggested_ids = prod_obj.search(request.cr, request.uid, [('id', 'in', suggested_ids)], context=request.context) + product_ids.append(line.product_id.id) + suggested_ids = list(set(suggested_ids) - set(product_ids)) + if suggested_ids: + suggested_ids = prod_obj.search(request.cr, request.uid, [('id', 'in', suggested_ids)], context=request.context) # select 3 random products suggested_products = [] diff --git a/addons/website_sale/product.py b/addons/website_sale/product.py index d70a34782b4..04ebbeaf39e 100644 --- a/addons/website_sale/product.py +++ b/addons/website_sale/product.py @@ -32,6 +32,14 @@ class product_pricelist(osv.Model): class product_template(osv.Model): _inherit = "product.template" _order = 'website_sequence desc, website_published, name' + + def _website_url(self, cr, uid, ids, field_name, arg, context=None): + res = {} + base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url') + for prod in self.browse(cr, uid, ids, context=context): + res[prod.id] = "%s/shop/product/%s/" % (base_url, prod.product_variant_ids[0].id) + return res + _columns = { 'website_published': fields.boolean('Available in the website'), 'website_description': fields.html('Description for the website'), @@ -41,6 +49,7 @@ class product_template(osv.Model): 'website_size_y': fields.integer('Size Y'), 'website_style_ids' : fields.many2many('website.product.style','product_website_style_rel', 'product_id', 'style_id', '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"), } _defaults = { 'website_size_x': 1, diff --git a/addons/website_sale/static/src/js/website_sale.js b/addons/website_sale/static/src/js/website_sale.js index 60bb42a6e10..b76ebb00990 100644 --- a/addons/website_sale/static/src/js/website_sale.js +++ b/addons/website_sale/static/src/js/website_sale.js @@ -36,7 +36,7 @@ $(document).ready(function () { }); // hack to add and rome from cart with json - $('.oe_website_sale a[href*="/add_cart/"],.oe_website_sale a[href*="/remove_cart/"]').on('click', function (ev) { + $('.oe_website_sale a.js_add_cart_json').on('click', function (ev) { ev.preventDefault(); var $link = $(ev.currentTarget); var product = $link.attr("href").match(/product_id=([0-9]+)/); diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index fbf8988904f..19536a45bb7 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -40,6 +40,36 @@ + + + product.template.product.website.form + product.template + + + + +
+

+ This product is not available for public user in your ecommerce. +

+

+ This product is available for public user in your ecommerce. +

+

Website view:

+
+
+ + + + + + + + + + +
+
@@ -232,7 +262,7 @@