Skip to content

WT-334 - Build CMS Components For Advertising Pages - Part 4#16848

Merged
kkellydesign merged 53 commits intoWT-334-cms-components-for-advertising-sub-navigationfrom
WT-334-cms-components-for-advertising-other-sub-pages
Nov 20, 2025
Merged

WT-334 - Build CMS Components For Advertising Pages - Part 4#16848
kkellydesign merged 53 commits intoWT-334-cms-components-for-advertising-sub-navigationfrom
WT-334-cms-components-for-advertising-other-sub-pages

Conversation

@dchukhin
Copy link
Collaborator

@dchukhin dchukhin commented Nov 4, 2025

If this changeset needs to go into the FXC codebase, please add the WMO and FXC label.

This pull request depends on #16815, which should be reviewed first

One-line summary

This pull request makes the other advertising subpages ('Solutions' and 'Impact') editable through Wagtail.

Significant changes and points to review

Following the work in #16815, this pull request adds:

  • the ContentSubpage as a child of AdvertisingIndexPage
  • a few more blocks that support creating the 'Solutions' and 'Impact' pages:
    • StatisticCalloutBlock and StatisticBlock
    • FeatureListWithModalsBlock, FeatureItemWithModalBlock, and FigureBlock

Issue / Bugzilla link

WT-334

Testing

To test locally,

  1. go to Wagtail and create an "Content subpage" page in the page tree (as a child of an "Advertising index page"). Try to make the content identical to http://localhost:8000/en-US/advertising/impact/.
  2. go to Wagtail and create an "Content subpage" page in the page tree (as a child of an "Advertising index page"). Try to make the content identical to http://localhost:8000/en-US/advertising/solutions/.

…nto WT-334-cms-components-for-advertising-other-sub-pages
…nto WT-334-cms-components-for-advertising-other-sub-pages
since line breaks are needed on the 'Impact' page
since rich text is needed on the 'Impact' page
…nto WT-334-cms-components-for-advertising-other-sub-pages
@dchukhin dchukhin requested review from a team as code owners November 4, 2025 16:48
@codecov
Copy link

codecov bot commented Nov 4, 2025

Codecov Report

❌ Patch coverage is 79.27928% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.87%. Comparing base (77c31e5) to head (0d50820).

Files with missing lines Patch % Lines
bedrock/mozorg/views.py 36.36% 14 Missing ⚠️
bedrock/mozorg/blocks/advertising.py 88.60% 9 Missing ⚠️
Additional details and impacted files
@@                                   Coverage Diff                                    @@
##           WT-334-cms-components-for-advertising-sub-navigation   #16848      +/-   ##
========================================================================================
- Coverage                                                 79.87%   79.87%   -0.01%     
========================================================================================
  Files                                                       161      161              
  Lines                                                      8736     8840     +104     
========================================================================================
+ Hits                                                       6978     7061      +83     
- Misses                                                     1758     1779      +21     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

- dev
- test
- stage
- prod
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heya - were these changes in action.yaml deliberately backed out, or does this branch need a rebase on main?

env:
LONG_SHA: ${{ needs.build_and_publish_public_images.outputs.long_sha }}
DEPLOYMENT_REALM: ${{ needs.build_and_publish_public_images.outputs.deployment_realm }}
DEPLOYMENT_ENV: ${{ needs.build_and_publish_public_images.outputs.deployment_env }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here - I wouldn't expect us to need to back out these changes. Can we rebase / check 'em please?

…nto WT-334-cms-components-for-advertising-other-sub-pages
…nto WT-334-cms-components-for-advertising-other-sub-pages
@dchukhin dchukhin changed the title WT-334 Build CMS Components For Advertising Subpages WT-334 - Build CMS Components For Advertising Pages - Part 4 Nov 4, 2025
…nto WT-334-cms-components-for-advertising-other-sub-pages
kkellydesign and others added 26 commits November 11, 2025 20:28
)

* feat: add post-deployment asset check management command and GHA

Porting this over from mozmeao/springfield, this GHA will be triggered
by a webhook after a deployment has shipped.

It pulls down the relevant Docker image and confirms that the hashed filenames
in the staticfiles manifest all correspond to real files available from the
origin server AND the CDN

* Drop unnecessary checkout of codebase - it's all in the Docker image now
…6857)

When rendering a page for a mixed-case locale (en-GB or es-ES, etc.),
Django lowercases the locale name (en-gb or es-es), so
Wagtail can fail to find the appropriate locale. We make
sure to normalize the locale name first, so that the
proper one is found.
In order to make the experience of editing pages
more-closely match Springfield, we nest blocks
inside of a SectionBlock.
* Cross-port ESR 115 exception from Springfield

* chore: disable references to 32-bit linux - no longer available

A proper cleanup is needed after this, ideally removing all the DL pages from
bedrock anyway

* Back out some removals of linux32-bit to keep tests happy; code is dead and needs cutting
* Upgrade to Wagtail 7

* Upgrade UV

* upgrade pinned requirements to latest versions

by running make compile-requirements

* upgrade uv to latest version

* upgrade Wagtail to version 7.1.2

to match the version in springfield

* upgrade Wagtail to version 7.2

---------

Co-authored-by: Jan Brasna <[email protected]>
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the playwright group in /tests/playwright with 2 updates: [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm) and [@playwright/test](https://github.com/microsoft/playwright).


Updates `@axe-core/playwright` from 4.10.2 to 4.11.0
- [Release notes](https://github.com/dequelabs/axe-core-npm/releases)
- [Changelog](https://github.com/dequelabs/axe-core-npm/blob/develop/CHANGELOG.md)
- [Commits](dequelabs/axe-core-npm@v4.10.2...v4.11.0)

Updates `@playwright/test` from 1.55.1 to 1.56.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.55.1...v1.56.1)

---
updated-dependencies:
- dependency-name: "@axe-core/playwright"
  dependency-version: 4.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: playwright
- dependency-name: "@playwright/test"
  dependency-version: 1.56.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: playwright
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…6869)

* Bump the dev-dependencies group across 1 directory with 2 updates

Bumps the dev-dependencies group with 2 updates in the / directory: [globals](https://github.com/sindresorhus/globals) and [jasmine-core](https://github.com/jasmine/jasmine).


Updates `globals` from 16.4.0 to 16.5.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](sindresorhus/globals@v16.4.0...v16.5.0)

Updates `jasmine-core` from 5.11.0 to 5.12.1
- [Release notes](https://github.com/jasmine/jasmine/releases)
- [Changelog](https://github.com/jasmine/jasmine/blob/main/RELEASE.md)
- [Commits](jasmine/jasmine@v5.11.0...v5.12.1)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 16.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: jasmine-core
  dependency-version: 5.12.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>

* Add glob override for jasmine

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: maureenlholland <[email protected]>
Bumps the frontend group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.28.4` | `7.28.5` |
| [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) | `7.28.3` | `7.28.5` |
| [@sentry/browser](https://github.com/getsentry/sentry-javascript) | `10.17.0` | `10.22.0` |
| [caniuse-lite](https://github.com/browserslist/caniuse-lite) | `1.0.30001746` | `1.0.30001752` |
| [sass-loader](https://github.com/webpack/sass-loader) | `16.0.5` | `16.0.6` |
| [webpack](https://github.com/webpack/webpack) | `5.102.0` | `5.102.1` |


Updates `@babel/core` from 7.28.4 to 7.28.5
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-core)

Updates `@babel/preset-env` from 7.28.3 to 7.28.5
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-preset-env)

Updates `@sentry/browser` from 10.17.0 to 10.22.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](getsentry/sentry-javascript@10.17.0...10.22.0)

Updates `caniuse-lite` from 1.0.30001746 to 1.0.30001752
- [Commits](browserslist/caniuse-lite@1.0.30001746...1.0.30001752)

Updates `sass-loader` from 16.0.5 to 16.0.6
- [Release notes](https://github.com/webpack/sass-loader/releases)
- [Changelog](https://github.com/webpack/sass-loader/blob/main/CHANGELOG.md)
- [Commits](webpack/sass-loader@v16.0.5...v16.0.6)

Updates `webpack` from 5.102.0 to 5.102.1
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.102.0...v5.102.1)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.28.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: "@babel/preset-env"
  dependency-version: 7.28.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: "@sentry/browser"
  dependency-version: 10.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend
- dependency-name: caniuse-lite
  dependency-version: 1.0.30001752
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: sass-loader
  dependency-version: 16.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
- dependency-name: webpack
  dependency-version: 5.102.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Stylelint

* WIP: add new solutions page

* Stylelint

* Move base styles from the home-solutions to the advertising and main-dark-section css files

* Add base advertising template for next pages

* Remove unused code

* Prevent specific issues with white lines below the sticky subnav

* Add base why mozilla view and template

* Update ads notification bar to make arrow clickable

* Add why mozilla, contact, notification, and highlight text to the why mozilla page

* Wrap why mozilla content on #mozads-main

* Add sample gallery section

* Redirect formats page to the WIP solutions page

* solutions template fix

* First step toward refactoring typography to align advertising, protocol, and m24 sizing.

* finished refactoring font sizes

* Move shared css from principles page to a generic two-column css file

* Add new contact sales page

* Change url for the contact page

* Add link to the contact sales page

* Wrap contact and principles pages with #mozads-main

* Add required field indicators to the contact sales form fields

* Add base static content to the ads solutions page

* Add placeholder modal implementation to ads solutions page

* Add accordion component using the details and summary html tags

* Migrate ads solutions to an es6 file

* Add skeleton for carousels in modals on ads solutions page

* design revisions

* modal FE finished

* solutions PDF, contact link updated

* copy and design revisions

* design revisions

* fixing linting

* prettier JS updates

* carousel caption JS updates

* new Impact page design

* typography revisions

* updated type scale

* linting fixes

* linting fixes

* new images, another round of design QA

* new copy added

* MDN ads images added, captions revised

* Mozilla Ads and Web Docs find/replace

* CSS prefix revision to remove "mozads" in favor of "mza"

* Solutions refactor in prep for CMS work

* photo update

* "nearly" removed. Apostrophes fixed. Principles added to nav.

* precommit installed and run on all relevant files

* button consistency, line height fixes, bold is now 600 throughout.

* revert top button changes

* update font weight

* Update bedrock/mozorg/templates/mozorg/advertising/contact.html

Co-authored-by: Stephanie Hobson <[email protected]>

* advertising page removed

* Update bedrock/mozorg/templates/mozorg/advertising/principles.html

Co-authored-by: Stephanie Hobson <[email protected]>

* links normalized

* Update media/css/mozorg/ads/home-why-moz.scss

Co-authored-by: Stephanie Hobson <[email protected]>

* why-mozilla removed

* removed unused contact view

* Update bedrock/mozorg/templates/mozorg/advertising/solutions.html

Co-authored-by: Stephanie Hobson <[email protected]>

* Update bedrock/mozorg/templates/mozorg/advertising/solutions.html

Co-authored-by: Stephanie Hobson <[email protected]>

* Update bedrock/mozorg/templates/mozorg/advertising/solutions.html

Co-authored-by: Stephanie Hobson <[email protected]>

* Apply alt tag suggestions from code review

Co-authored-by: Stephanie Hobson <[email protected]>

---------

Co-authored-by: Kasey Kelly <[email protected]>
Co-authored-by: Stephanie Hobson <[email protected]>
Remove when jasmine browser runner includes glob v11.1.0 or higher
* Speed up integration_tests

* Caching is slow
* data collective section

* footer change

* issues section

* fox section

* AI gallery

* AI gallery images

* spring board section

* ftl string clean up

* update image dimension

* icon updates

* update CTA links

* springboard ftl string clean up

* add fallbacks for AI gallery

* display gallery tile when content available

* address review feedback
@kkellydesign kkellydesign merged commit b7bbf39 into WT-334-cms-components-for-advertising-sub-navigation Nov 20, 2025
6 checks passed
@kkellydesign kkellydesign deleted the WT-334-cms-components-for-advertising-other-sub-pages branch November 20, 2025 17:23
@kkellydesign kkellydesign restored the WT-334-cms-components-for-advertising-other-sub-pages branch November 20, 2025 17:24
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.

8 participants