diff --git a/product_visibility_website/controllers/main.py b/product_visibility_website/controllers/main.py index 37f455ff7..cc73ec1c3 100644 --- a/product_visibility_website/controllers/main.py +++ b/product_visibility_website/controllers/main.py @@ -22,7 +22,6 @@ ################################################################################### from werkzeug.exceptions import NotFound - from addons.http_routing.models.ir_http import slug from addons.website.controllers.main import QueryURL from addons.website_sale.controllers.main import TableCompute @@ -99,14 +98,14 @@ class ProductVisibilityCon(WebsiteSale): ], type='http', auth="public", website=True, sitemap=sitemap_shop) def shop(self, page=0, category=None, search='', ppg=False, **post): ''''Override shop function.''' - available_categ = available_products = '' + available_categ = available_products = '' user = request.env['res.users'].sudo().search([('id', '=', request.env.user.id)]) if not user: mode = request.env['ir.config_parameter'].sudo().get_param('filter_mode') - products = literal_eval(request.env['ir.config_parameter'].sudo().get_param('product_visibility_website.available_product_ids', 'False')) + products = literal_eval(request.env['ir.config_parameter'].sudo().get_param('website_product_visibility.available_product_ids', 'False')) if mode == 'product_only': available_products = request.env['product.template'].search([('id', 'in', products)]) - cat = literal_eval(request.env['ir.config_parameter'].sudo().get_param('product_visibility_website.available_cat_ids', 'False')) + cat = literal_eval(request.env['ir.config_parameter'].sudo().get_param('website_product_visibility.available_cat_ids', 'False')) available_categ = request.env['product.public.category'].search([('id', 'in', cat)]) else: partner = request.env['res.partner'].sudo().search([('id', '=', user.partner_id.id)]) @@ -271,12 +270,12 @@ class ProductVisibilityCon(WebsiteSale): if not user: mode = request.env['ir.config_parameter'].sudo().get_param('filter_mode') products = literal_eval( - request.env['ir.config_parameter'].sudo().get_param('product_visibility_website.available_product_ids', + request.env['ir.config_parameter'].sudo().get_param('website_product_visibility.available_product_ids', 'False')) if mode == 'product_only': available_products = request.env['product.template'].search([('id', 'in', products)]) cat = literal_eval( - request.env['ir.config_parameter'].sudo().get_param('product_visibility_website.available_cat_ids', + request.env['ir.config_parameter'].sudo().get_param('website_product_visibility.available_cat_ids', 'False')) available_categ = request.env['product.public.category'].search([('id', 'in', cat)]) else: diff --git a/product_visibility_website/models/website_product_visibility.py b/product_visibility_website/models/website_product_visibility.py index 8d628f982..3d4d3c3e2 100644 --- a/product_visibility_website/models/website_product_visibility.py +++ b/product_visibility_website/models/website_product_visibility.py @@ -40,13 +40,18 @@ class ProductVisibility(models.Model): ' If no product is specified,' ' all available products will be shown') + @api.onchange("filter_mode") + def onchange_filter_mod(self): + if self.filter_mode == 'null': + self.website_available_cat_ids = None + self.website_available_product_ids = None class WebsiteGuestVisibility(models.TransientModel): _inherit = 'res.config.settings' product_visibility_guest_user = fields.Boolean(string="Product visibility Guest User") filter_mode = fields.Selection([('product_only', 'Product Wise'), - ('categ_only', 'Category Wise')], string='Filter Mode',default='product_only') + ('categ_only', 'Category Wise')], string='Filter Mode', default='product_only') available_product_ids = fields.Many2many('product.template', string='Available Product', domain="[('is_published', '=', True)]", @@ -58,39 +63,37 @@ class WebsiteGuestVisibility(models.TransientModel): ' If no product is specified,' ' all available products will be shown') - @api.model def set_values(self): res = super(WebsiteGuestVisibility, self).set_values() self.env['ir.config_parameter'].sudo().set_param('product_visibility_guest_user', self.product_visibility_guest_user) - self.env['ir.config_parameter'].sudo().set_param('filter_mode', - self.filter_mode) + self.env['ir.config_parameter'].sudo().set_param('filter_mode', self.filter_mode) if not self.product_visibility_guest_user: self.available_cat_ids = None self.available_product_ids = None + self.env['ir.config_parameter'].sudo().set_param('filter_mode','product_only') if self.filter_mode == 'product_only': self.available_cat_ids = None elif self.filter_mode == 'categ_only': self.available_product_ids = None - self.env['ir.config_parameter'].sudo().set_param('product_visibility_website.available_product_ids', + self.env['ir.config_parameter'].sudo().set_param('website_product_visibility.available_product_ids', self.available_product_ids.ids) - self.env['ir.config_parameter'].sudo().set_param('product_visibility_website.available_cat_ids', + self.env['ir.config_parameter'].sudo().set_param('website_product_visibility.available_cat_ids', self.available_cat_ids.ids) return res @api.model def get_values(self): res = super(WebsiteGuestVisibility, self).get_values() - product_ids = literal_eval(self.env['ir.config_parameter'].sudo().get_param('product_visibility_website.available_product_ids', 'False')) - cat_ids = literal_eval(self.env['ir.config_parameter'].sudo().get_param('product_visibility_website.available_cat_ids', 'False')) - + product_ids = literal_eval(self.env['ir.config_parameter'].sudo().get_param('website_product_visibility.available_product_ids', 'False')) + cat_ids = literal_eval(self.env['ir.config_parameter'].sudo().get_param('website_product_visibility.available_cat_ids', 'False')) + mod = self.env['ir.config_parameter'].sudo().get_param('filter_mode') res.update( product_visibility_guest_user=self.env['ir.config_parameter'].sudo().get_param( 'product_visibility_guest_user'), - filter_mode=self.env['ir.config_parameter'].sudo().get_param( - 'filter_mode'), + filter_mode=mod if mod else 'product_only', available_product_ids=[(6, 0, product_ids)], available_cat_ids=[(6, 0, cat_ids)], ) diff --git a/product_visibility_website/static/description/images/scrn1.png b/product_visibility_website/static/description/images/scrn1.png index 7e5c77b10..462407dbd 100644 Binary files a/product_visibility_website/static/description/images/scrn1.png and b/product_visibility_website/static/description/images/scrn1.png differ diff --git a/product_visibility_website/static/description/images/scrn10.png b/product_visibility_website/static/description/images/scrn10.png new file mode 100644 index 000000000..5f67bf6a5 Binary files /dev/null and b/product_visibility_website/static/description/images/scrn10.png differ diff --git a/product_visibility_website/static/description/images/scrn2.png b/product_visibility_website/static/description/images/scrn2.png index f18a5bfe5..54628a8dd 100644 Binary files a/product_visibility_website/static/description/images/scrn2.png and b/product_visibility_website/static/description/images/scrn2.png differ diff --git a/product_visibility_website/static/description/images/scrn3.png b/product_visibility_website/static/description/images/scrn3.png index cb86d7d81..626c16571 100644 Binary files a/product_visibility_website/static/description/images/scrn3.png and b/product_visibility_website/static/description/images/scrn3.png differ diff --git a/product_visibility_website/static/description/images/scrn4.png b/product_visibility_website/static/description/images/scrn4.png index af28b80db..01bf06e39 100644 Binary files a/product_visibility_website/static/description/images/scrn4.png and b/product_visibility_website/static/description/images/scrn4.png differ diff --git a/product_visibility_website/static/description/images/scrn5.png b/product_visibility_website/static/description/images/scrn5.png index 9c0019f97..85befd215 100644 Binary files a/product_visibility_website/static/description/images/scrn5.png and b/product_visibility_website/static/description/images/scrn5.png differ diff --git a/product_visibility_website/static/description/images/scrn6.png b/product_visibility_website/static/description/images/scrn6.png index f0cdec232..263c5679a 100644 Binary files a/product_visibility_website/static/description/images/scrn6.png and b/product_visibility_website/static/description/images/scrn6.png differ diff --git a/product_visibility_website/static/description/images/scrn7.png b/product_visibility_website/static/description/images/scrn7.png new file mode 100644 index 000000000..fc9ee5ed3 Binary files /dev/null and b/product_visibility_website/static/description/images/scrn7.png differ diff --git a/product_visibility_website/static/description/images/scrn8.png b/product_visibility_website/static/description/images/scrn8.png new file mode 100644 index 000000000..e78a07031 Binary files /dev/null and b/product_visibility_website/static/description/images/scrn8.png differ diff --git a/product_visibility_website/static/description/images/scrn9.png b/product_visibility_website/static/description/images/scrn9.png new file mode 100644 index 000000000..21744894f Binary files /dev/null and b/product_visibility_website/static/description/images/scrn9.png differ diff --git a/product_visibility_website/static/description/index.html b/product_visibility_website/static/description/index.html index d1866fdc4..e7a5eb876 100644 --- a/product_visibility_website/static/description/index.html +++ b/product_visibility_website/static/description/index.html @@ -3,7 +3,7 @@

Website Product Visibility

-

Website Product visibility for Users.

+

Website Product visibility for logged in and logged out users/Visitors.

Key Highlights