feat: #3607228 Build the programme page to the design, with the fields it needs

Follows !25 (merged), which landed the listing. This brings the programme page itself to the design, and repairs one regression !25 (merged) carried in.

Programme page

node.program.full was empty, so every Learn More led to a blank page. It now follows the design end to end: hero panel with the title, summary and image; the write-up; a headline feature beside a photograph; a by-the-numbers panel with three figures; a how-we-deliver intro beside four tinted cards; a world map highlighting the countries the programme runs in; the news slider; and a closing call to action.

The fields that needed adding

The design asks for content the Program type did not hold. Reusing Country's storages where they exist, and adding the rest:

  • field_headline, field_on_the_ground, field_on_the_ground_image — the headline feature block.
  • field_figures_heading, field_figures_description, field_figure_number, field_figure_description — the figures panel.
  • field_delivery_heading, field_our_role, field_delivery_title, field_delivery_text — the four delivery cards.
  • field_map_heading, field_map_text on Program and field_country_code on Country — the map, which highlights a country by its two-letter code.
  • field_cta_heading, field_cta_text — the closing call to action.

All are on the programme edit form, and the five demo programmes and twelve countries carry values.

Also

  • Program gained a compact card view mode for the related grid; the wide listing template does not fit a three-up grid.
  • The blog slider keeps the reference site's navy band, and a second display renders it on the light panel the programme page needs.
  • Regression fix: !25 (merged) reverted #3614797 and put the leading slash back on finish_url. 1.0.x currently carries it, so the browser installer redirects to //. Restored here.

Verified on a clean build, installed twice from this branch — through the browser site-template picker and through drush: 70 nodes, 25 terms, 74 media, 7 pages, program.full 60 components, event.full still 22, and both pages measured against the design.

Two gaps are left, both outside this recipe: the delivery cards have no icon tiles (the icon component takes a media reference, and there is no icon media yet), and the news cards show no category badge or teaser because varbase_blog_base ships that card template with an invalid UUID, so it cannot be repointed.

AI-Generated: Yes

Checkpoints:

  • File an issue
  • Addition/Change/Update/Fix
  • Testing to ensure no regression
  • Automated unit testing coverage
  • Automated functional testing coverage
  • UX/UI designer responsibilities
  • Readability
  • Accessibility
  • Performance
  • Security
  • Developer Documentation
  • User Guide Documentation
  • Reviewed by human
  • Code review by maintainers
  • Full testing and approval
  • Credit contributors
  • Review with the product owner
  • Release notes snippet
  • Release
Edited by Rajab Natshah

Merge request reports

Loading