Skip to content

[IMP] website_membership_group: integrate Members dynamic snippet#142

Open
superabdellekke wants to merge 1 commit into
onesteinbv:18.0from
superabdellekke:feature/integrate-members-snippet
Open

[IMP] website_membership_group: integrate Members dynamic snippet#142
superabdellekke wants to merge 1 commit into
onesteinbv:18.0from
superabdellekke:feature/integrate-members-snippet

Conversation

@superabdellekke
Copy link
Copy Markdown
Contributor

Note: This pull request was planned using DeepSeek V4 Pro and executed using DeepSeek V4 Flash with Opencode.

Summary

  • Merges the website_membership_snippet module into website_membership_group
  • The "Members" dynamic snippet can now be dragged onto any website page
  • Users can filter by membership group via the snippet options panel
  • Three layout variants: Grid, List, Avatars

Key details

  • New controller endpoint /membership/snippet/groups returns published groups as JSON
  • Dynamic snippet frontend extends Odoo's DynamicSnippet with group + state filtering
  • Snippet options include a "Membership Group" <we-select> dropdown, populated via RPC
  • Fixes an Odoo core crash when _filter_records_to_values encounters False on binary/image fields for sample records
  • Shows a "No members found" message in the editor when a group has no published/current members
  • Removed test_snippet_templates_exist (duplicative check)
  • Filters out unpublished members (respects website_published flag)

Files changed

Action File
CREATE data/website_snippet_filter_data.xml
CREATE views/snippets/dynamic_templates.xml
CREATE views/snippets/members_snippet.xml
CREATE static/src/js/membership_snippet.esm.js
CREATE static/src/js/membership_snippet_options.esm.js
CREATE models/website_snippet_filter.py
CREATE tests/test_membership_snippet.py
MODIFY __manifest__.py
MODIFY controllers/main.py
MODIFY models/__init__.py
REMOVE website_membership_snippet/ (entire module)

Fold the website_membership_snippet module into website_membership_group
so a separate module is no longer needed. The snippet allows dragging a
"Members" block onto any website page and filtering by membership group.

Changes:
- Add JSON endpoint /membership/snippet/groups returning published groups
- Add dynamic snippet templates (Grid, List, Avatars)
- Add snippet panel registration with group selector option
- Add JS frontend (filter by group + state) and options widget
- Override _filter_records_to_values to fix binary/image False decode crash
- Add empty-state message when no published/current members match
- Add Odoo unit tests for filter, endpoint, rendering, and hidden members
- Remove obsolete website_membership_snippet module
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant