[IMP] website_membership compatible with Multi-Website

This commit is contained in:
Kaushal Prajapati 2018-01-01 16:16:47 +05:30 committed by Siddharth Bhalgami
parent d0f4d38c2d
commit 75b104de5b
2 changed files with 8 additions and 4 deletions

View File

@ -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)

View File

@ -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: