addons-cm/website_membership_associate
2026-07-28 09:29:14 +02:00
..
controllers add website_membership_associate 2026-07-28 09:29:14 +02:00
i18n add website_membership_associate 2026-07-28 09:29:14 +02:00
models add website_membership_associate 2026-07-28 09:29:14 +02:00
tests add website_membership_associate 2026-07-28 09:29:14 +02:00
__init__.py add website_membership_associate 2026-07-28 09:29:14 +02:00
__manifest__.py add website_membership_associate 2026-07-28 09:29:14 +02:00
README.md add website_membership_associate 2026-07-28 09:29:14 +02:00

Website Membership Associate

Show associate members in the public /members directory of website_membership.

Problem

The standard website_membership module builds the public members directory from membership.membership_line records. Partners that are linked as associate members (res.partner.associate_member) inherit the membership status of their host partner and do not own a membership line, so they are not shown in the public directory even when they are published.

Solution

The module follows the same pattern as OCA's website_membership_non_paid_member:

  • The members() controller injects the context key include_associate_members=True and delegates pagination, grouping and search to the standard website_membership controller.
  • membership.membership_line._search() detects that context key and widens the domain so that a host is returned when the active country or search filters match one of its published associates.
  • The inherited controller post-processes the rendered context to add the current page's associates under the same membership group (or under "Free Members") as their host, keep associates under their own country in the country sidebar, hide hosts that only appear because an associate matched the active country/search filter, and include published associate companies in the Google Map markers.

No fake membership lines are created and no core or OCA addon is modified.

Supported features

  • Pagination over hosts (_references_per_page) with associates rendered on the same page.
  • Grouping by membership product and "Free Members".
  • Country grouping and filtering (associates are counted under their own country).
  • Name / website description search.
  • Google Map markers (when the optional view is enabled).

Configuration

No configuration is required. Install the module and publish the partners that must appear on the website.

Development notes

  • All business logic is in Python controllers/models; no QWeb logic is added.
  • No source code of website_membership, membership or other core/OCA addons is modified.
  • No fake membership lines are created for associate members.
  • Only one level of association (associate_member) is supported.