feat: #3614099 Add the Events listing, its card view mode, the Topic filter and demo content
Follows the varbase_blog_base pattern — the house reference: one view display paired with a Canvas content template per view mode, split across all / latest / related.
Events listing
core.entity_view_display.node.event.card+canvas.content_template.node.event.cardrendercard-events, bindingfield_whenstart/end to the theme's timestamp props,field_event_categoriesto the taxonomy label and the path alias to the link.- A
latestblock display (pagersome/3, filters un-exposed, no header) feeds the Home teaser, so it can never inherit the listing's filters or pager. - 24 demo events reusing the existing media, plus an
event-in-personterm.
Topic field and filter
- An
event_topicsvocabulary and a multi-valuefield_event_topicson Event, with its autocomplete-tags widget on the event form. - A third exposed filter labelled "Topic", giving the design's Search Keyword / Type / Topic row. Ten topic terms, all 24 events tagged.
Grid fixes
prop_mappingson the events, countries and programs grid displays.ComponentsViewsStylereads the column classes only fromprop_mappings, never from top-levelstyle.options— column settings placed there are silently ignored, which is why Countries and Programs rendered as bare text.- Countries row view mode
overlay_card_medium→card, and corrected labels. - The Countries page section was
columns: 25-25-25-25, squeezing the grid into a 330px column; now full width. Apply Filtersand a reset button on all four exposed forms — ondisplay.defaultand thedisplay.alloverrides that shadow it.
Verified on a clean install from the shipped recipe
blog=26 country=12 event=24 page=3 program=5; every section page HTTP 200 with zero errors.
| Result | |
|---|---|
/events |
3×3 card grid, 416×359, equal heights, 9/9/6 across pages, "Showing 1-9 of 24" |
| Filter row | Search Keyword (650) / Type (263) / Topic (263) on one line, controls pixel-aligned |
| Topic filtering | Protection → 5, Health → 2, Shelter → 3, Partnerships → 5; Type=Webinar + Topic=Protection → 3 |
| Home | 3 event cards, no exposed form, 0 pager items |
/countries |
12 cards 3-up at 416×420 in a full-width 1320px grid |
Issue: https://www.drupal.org/i/3614099
AI-Generated: Yes
Checkpoints
- File an issue about this project
- Addition/Change/Update/Fix to this project
- Testing to ensure no regression
- Automated unit/functional testing coverage
- Developer Documentation support on feature change/addition
- User Guide Documentation support on feature change/addition
- UX/UI designer responsibilities
- Accessibility and Readability
- Reviewed by a human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Update Release Notes
- Release
Edited by Rajab Natshah