Problem/Motivation
Three distinct faults, all verified against a fresh install of this recipe.
1. The content import aborts on every fresh install. The ten event-topic term files carry format: basic_html on their description. Varbase ships no basic_html text format (it has full_html, content_format, plain_text, plus the Canvas and webform formats), so Drupal\\Core\\DefaultContent\\Importer throws:
InvalidEntityException: recipes/horizonaid/content/taxonomy_term/event-topic-education.yml: description.0.format=The value you selected is not a valid choice.
Reproduced in the real browser installer via the site-template picker, and headlessly with drush site:install recipes/horizonaid. Consequence: the event_topics vocabulary is never created, the import stops at that file, and blog truncates to 25 nodes instead of 26. Every other shipped taxonomy term file in this recipe carries no description at all, so the fix is to match that.
2. No event is tagged with a topic. Each event's _meta.depends map declared only its category term and its media, not the topic term UUIDs. Drupal's default-content importer only resolves entity: references that are declared in depends, so every field_event_topics reference was dropped silently. Result: 0 of 24 events tagged, and the Topic exposed filter returns nothing for every option — the filter added in #3614099 is inert.
3. The event full page renders empty. canvas.content_template.node.event.full exists with component_tree: {} (an empty placeholder from varbase_events_base), so /events/<alias> renders header and footer with zero characters of main content, no h1 and no images.
Related: the events view's related display ("Related events") could never return results either — it related by field_tags, which no event carries (the tagged nodes are the 26 blogs), and its default_argument_options.vids was scoped to the tags vocabulary.
Steps to reproduce
- Install Varbase and pick the Horizon Aid site template in the browser installer (or
drush site:install recipes/horizonaid). - The install fails with the
InvalidEntityExceptionabove. - Work around it, then open
/events— every Topic filter option returns no results. - Open any event page, e.g.
/events/digital-security-advocacy-groups— the page body is empty.
Proposed resolution
- Drop the
descriptionblock from the ten event-topic term files, matching every other shipped term file. - Declare each event's topic term UUIDs in its
_meta.dependsmap. - Fill the
event.fullcontent template from the design (FigmaDvazC3FHGDNKNb7GnRBbXm, node12469-3619): media banner with the title and description, then a 75/25 section carrying About this Event, What You'll Learn, Speakers and a Share rail, then a "More Events" section embedding the eventsrelateddisplay. - Add two
text_longfields,field_what_you_will_learnandfield_speakers, with textarea widgets. Rich text rather than multi-value, because Canvas content templates cannot loop and multi-value fields must be bound by fixed index, which leaves empty component slots when an event has fewer items. This matches howcountry.fullalready models its prose sections (field_our_role,field_on_the_ground). - Repoint the events
relateddisplay tofield_event_topics, scoped to theevent_topicsvocabulary, keeping thenidargument so the current event is excluded. - Add About / What You'll Learn / Speakers demo content to all 24 events.
Related issue: #3614099: Add the Events listing, its card view mode, the Topic filter and demo content (merge commit 33620062, MR !15). That work is merged; this issue fixes two defects that shipped in it plus adds the event full page. Not reopening #3614099.
Verified on a clean install from the fixed recipe:
- No import or validation errors.
- Nodes: blog=26 country=12 event=24 page=3 program=5.
event_topicsvocabulary: 10 terms. Events tagged: 24 of 24.- Events carrying body / What You'll Learn / Speakers: 24 / 24 / 24.
- Event page: H1 title, 2 About paragraphs, 4 What You'll Learn bullets, 3 Speaker lines, banner image at 20px radius, breadcrumb, and 2 topic-related events under More Events.
- Topic filtering on /events: Protection 5, Health 2, Shelter 3, Partnerships 5.
Remaining tasks
- ✅ 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
User interface changes
- Fresh installs complete. The Topic filter on /events returns results. Event pages render the full design: banner, About this Event, What You'll Learn, Speakers, Share rail, and More Events.
API changes
- Two new fields on the Event content type: field_what_you_will_learn, field_speakers.
Data model changes
- The two new text_long fields above (field_what_you_will_learn, field_speakers). No changes to existing fields.
Release notes snippet
- Fixes a fresh-install failure in the event-topic demo content, tags every demo event with its topic, and implements the event full page.
Issue fork horizonaid-3614494
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #10
rajab natshah✅ Released horizonaid-1.0.0-alpha1
Comment #11
rajab natshahComment #12
rajab natshah