From 51fae1fcf8606faa6106fada2e4a5053c43b60a5 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 24 Sep 2013 12:28:34 +0200 Subject: [PATCH] [IMP] website_sale display only non empty category in non editable mode bzr revid: chm@openerp.com-20130924102834-op0bm475w20x35j4 --- addons/product/product_demo.xml | 2 +- addons/website/static/src/css/website.css | 5 ++++ addons/website/static/src/css/website.sass | 2 ++ addons/website_sale/controllers/main.py | 24 ++++++++++++++----- .../static/src/css/website_sale.css | 4 ---- .../static/src/css/website_sale.sass | 4 ---- addons/website_sale/views/website_sale.xml | 11 +++++---- addons/website_sale/website_sale.py | 1 + 8 files changed, 34 insertions(+), 19 deletions(-) diff --git a/addons/product/product_demo.xml b/addons/product/product_demo.xml index eb8e8bd21b5..39cdde90326 100644 --- a/addons/product/product_demo.xml +++ b/addons/product/product_demo.xml @@ -245,7 +245,7 @@ FaceTime HD Camera, 1.2 MP Photos Bose Mini Bluetooth Speaker PC-DEM - + 600.0 900.0 consu diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css index 20a0968347a..29a443e50ea 100644 --- a/addons/website/static/src/css/website.css +++ b/addons/website/static/src/css/website.css @@ -1,3 +1,4 @@ +@charset "utf-8"; /* THIS CSS FILE IS FOR WEBSITE THEMING CUSTOMIZATION ONLY * * css for editor buttons, openerp widget included in the website and other @@ -370,6 +371,10 @@ a[data-publish][data-publish='on']:hover .css_published { display: none; } +.unpublish { + opacity: 0.5; +} + [data-publish='off']:not(a) > :not([data-publish]) { opacity: 0.5; } diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass index 2511cb55d9e..52937f25192 100644 --- a/addons/website/static/src/css/website.sass +++ b/addons/website/static/src/css/website.sass @@ -282,6 +282,8 @@ a[data-publish] &:hover .css_published display: none +.unpublish + opacity: 0.5 [data-publish='off']:not(a) >:not([data-publish]) opacity: 0.5 diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 44d95784071..5345e6721d4 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -50,10 +50,22 @@ class Website(osv.osv): class Ecommerce(http.Controller): def get_categories(self): + domain = [('parent_id', '=', False)] + category_obj = request.registry.get('product.public.category') - category_ids = category_obj.search(request.cr, SUPERUSER_ID, [('parent_id', '=', False)], context=request.context) + category_ids = category_obj.search(request.cr, SUPERUSER_ID, domain, context=request.context) categories = category_obj.browse(request.cr, SUPERUSER_ID, category_ids, context=request.context) - return categories + + product_obj = request.registry.get('product.product') + groups = product_obj.read_group(request.cr, SUPERUSER_ID, [("sale_ok", "=", True), ('website_published', '=', True)], ['public_categ_id'], 'public_categ_id', context=request.context) + full_category_ids = [group['public_categ_id'][0] for group in groups if group['public_categ_id']] + for cat_id in category_obj.browse(request.cr, SUPERUSER_ID, full_category_ids, context=request.context): + while cat_id.parent_id: + cat_id = cat_id.parent_id + full_category_ids.append(cat_id.id) + full_category_ids.append(1) + + return (categories, full_category_ids) @website.route(['/shop/', '/shop/category//', '/shop/category//page//', '/shop/page//'], type='http', auth="public") def category(self, cat_id=0, page=0, **post): @@ -63,7 +75,7 @@ class Ecommerce(http.Controller): product_obj = request.registry.get('product.template') domain = [("sale_ok", "=", True)] - domain += [('website_published', '=', True)] + #domain += [('website_published', '=', True)] if post.get("search"): domain += ['|', '|', '|', @@ -84,7 +96,7 @@ class Ecommerce(http.Controller): request.context['pricelist'] = self.get_pricelist() values = { - 'categories': self.get_categories(), + 'get_categories': self.get_categories, 'category_id': cat_id, 'products': product_obj.browse(request.cr, SUPERUSER_ID, product_ids, context=request.context), 'search': post.get("search"), @@ -117,7 +129,7 @@ class Ecommerce(http.Controller): 'category_id': post.get('category_id') and int(post.get('category_id')) or None, 'category': category, 'search': post.get("search"), - 'categories': self.get_categories(), + 'get_categories': self.get_categories, 'category_list': category_list, 'product': product, } @@ -241,7 +253,7 @@ class Ecommerce(http.Controller): suggested_products.append(suggested_ids.pop(index)) values = { - 'categories': self.get_categories(), + 'get_categories': self.get_categories, 'suggested_products': prod_obj.browse(request.cr, request.uid, suggested_products, request.context), } return request.website.render("website_sale.mycart", values) diff --git a/addons/website_sale/static/src/css/website_sale.css b/addons/website_sale/static/src/css/website_sale.css index 2495a22c552..65323ba883f 100644 --- a/addons/website_sale/static/src/css/website_sale.css +++ b/addons/website_sale/static/src/css/website_sale.css @@ -103,10 +103,6 @@ max-width: 100%; max-height: 140px; } -.oe_products .oe_product_list_image img { - width: 150px; - height: 140px; -} .oe_products .oe_product_image { left: 15px; right: 15px; diff --git a/addons/website_sale/static/src/css/website_sale.sass b/addons/website_sale/static/src/css/website_sale.sass index 900c7883a29..d9eecb01145 100644 --- a/addons/website_sale/static/src/css/website_sale.sass +++ b/addons/website_sale/static/src/css/website_sale.sass @@ -97,10 +97,6 @@ border: 1px solid rgba(100, 100, 100, 0.2) max-width: 100% max-height: 140px - .oe_product_list_image - img - width: 150px - height: 140px .oe_product_image left: 15px right: 15px diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index 027ab140dd2..da19f391947 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -68,10 +68,12 @@