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.card render card-events, binding field_when start/end to the theme's timestamp props, field_event_categories to the taxonomy label and the path alias to the link.
  • A latest block display (pager some/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-person term.

Topic field and filter

  • An event_topics vocabulary and a multi-value field_event_topics on 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_mappings on the events, countries and programs grid displays. ComponentsViewsStyle reads the column classes only from prop_mappings, never from top-level style.options — column settings placed there are silently ignored, which is why Countries and Programs rendered as bare text.
  • Countries row view mode overlay_card_mediumcard, and corrected labels.
  • The Countries page section was columns: 25-25-25-25, squeezing the grid into a 330px column; now full width.
  • Apply Filters and a reset button on all four exposed forms — on display.default and the display.all overrides 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

Merge request reports

Loading