From 75b104de5baf57c9dba59b4c721b527b226b4f08 Mon Sep 17 00:00:00 2001 From: Kaushal Prajapati Date: Mon, 1 Jan 2018 16:16:47 +0530 Subject: [PATCH] [IMP] website_membership compatible with Multi-Website --- addons/website_membership/controllers/main.py | 7 ++++--- addons/website_slides/controllers/main.py | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/website_membership/controllers/main.py b/addons/website_membership/controllers/main.py index 5d5d36c4..9e7eda45 100644 --- a/addons/website_membership/controllers/main.py +++ b/addons/website_membership/controllers/main.py @@ -43,6 +43,7 @@ class WebsiteMembership(http.Controller): # base domain for groupby / searches base_line_domain = [ ("partner.website_published", "=", True), ('state', '=', 'paid'), + '|', ('partner.website_ids', '=', False), ('partner.website_ids', 'in', request.website.id), ('date_to', '>=', today), ('date_from', '<=', today) ] if membership_id and membership_id != 'free': @@ -63,7 +64,7 @@ class WebsiteMembership(http.Controller): if post_name: country_domain += ['|', ('name', 'ilike', post_name), ('website_description', 'ilike', post_name)] - countries = Partner.sudo().read_group(country_domain + [("website_published", "=", True)], ["id", "country_id"], groupby="country_id", orderby="country_id") + countries = Partner.sudo().read_group(country_domain + [("website_published", "=", True), '|', ('website_ids', '=', False), ('website_ids', 'in', request.website.id)], ["id", "country_id"], groupby="country_id", orderby="country_id") countries_total = sum(country_dict['country_id_count'] for country_dict in countries) line_domain = list(base_line_domain) @@ -106,7 +107,7 @@ class WebsiteMembership(http.Controller): if request.env.ref('website_membership.opt_index_google_map').customize_show: google_map_partner_ids = MembershipLine.search(line_domain).get_published_companies(limit=2000) - search_domain = [('membership_state', '=', 'free'), ('website_published', '=', True)] + search_domain = [('membership_state', '=', 'free'), ('website_published', '=', True), '|', ('website_ids', '=', False), ('website_ids', 'in', request.website.id),] if post_name: search_domain += ['|', ('name', 'ilike', post_name), ('website_description', 'ilike', post_name)] if country_id: @@ -167,7 +168,7 @@ class WebsiteMembership(http.Controller): _, partner_id = unslug(partner_id) if partner_id: partner = request.env['res.partner'].sudo().browse(partner_id) - if partner.exists() and partner.website_published: # TODO should be done with access rules + if partner.exists() and partner.website_published and not partner.website_ids or request.website in partner.website_ids: # TODO should be done with access rules values = {} values['main_object'] = values['partner'] = partner return request.render("website_membership.partner", values) diff --git a/addons/website_slides/controllers/main.py b/addons/website_slides/controllers/main.py index 31c1e32d..2b227eae 100644 --- a/addons/website_slides/controllers/main.py +++ b/addons/website_slides/controllers/main.py @@ -57,7 +57,10 @@ class WebsiteSlides(http.Controller): """ Returns a list of available channels: if only one is available, redirects directly to its slides """ - channels = request.env['slide.channel'].search([], order='sequence, id') + domain = [] + if not request.env.user.has_group('website.group_website_designer'): + domain += ['|', ('website_ids', '=', False), ("website_ids", "in", request.website.id)] + channels = request.env['slide.channel'].search(domain, order='sequence, id') if not channels: return request.render("website_slides.channel_not_found") elif len(channels) == 1: