diff --git a/addons/website_membership/controllers/main.py b/addons/website_membership/controllers/main.py index b94f57b41a4..eb15ab0b11d 100644 --- a/addons/website_membership/controllers/main.py +++ b/addons/website_membership/controllers/main.py @@ -37,16 +37,16 @@ class WebsiteMembership(http.Controller): partner_obj = request.registry['res.partner'] post_name = post.get('name', '') current_country = None + today = time.strftime(DEFAULT_SERVER_DATE_FORMAT) # base domain for groupby / searches - base_line_domain = [("partner.website_published", "=", True), ('state', 'in', ['free', 'paid'])] + base_line_domain = [ + ("partner.website_published", "=", True), ('state', '=', 'paid'), + ('date_to', '>=', today), ('date_from', '<=', today) + ] if membership_id and membership_id != 'free': membership_id = int(membership_id) - today = time.strftime(DEFAULT_SERVER_DATE_FORMAT) - base_line_domain += [ - ('membership_id', '=', membership_id), ('date_to', '>=', today), - ('date_from', '<=', today), ('state', '=', 'paid') - ] + base_line_domain.append(('membership_id', '=', membership_id)) membership = product_obj.browse(cr, uid, membership_id, context=context) else: membership = None @@ -58,12 +58,14 @@ class WebsiteMembership(http.Controller): if membership_id != 'free': membership_line_ids = membership_line_obj.search(cr, SUPERUSER_ID, base_line_domain, context=context) country_domain = [('member_lines', 'in', membership_line_ids)] + if not membership_id: + country_domain = ['|', country_domain[0], ('membership_state', '=', 'free')] else: membership_line_ids = [] country_domain = [('membership_state', '=', 'free')] - if post_name: - country_domain += ['|', ('name', 'ilike', post_name), - ('website_description', 'ilike', post_name)] + if post_name: + country_domain += ['|', ('name', 'ilike', post_name), + ('website_description', 'ilike', post_name)] countries = partner_obj.read_group( cr, SUPERUSER_ID, country_domain + [("website_published", "=", True)], ["id", "country_id"], groupby="country_id", orderby="country_id", context=request.context)