Skip to content

fix(quant): renamed pages redirect, deleted content leaves no internal path, valid view schema - #262

Merged
stooit merged 7 commits into
2.xfrom
fix/content-paths
Nov 9, 2026
Merged

stooit merged 7 commits into
2.xfrom
fix/content-paths

Conversation

@stooit

@stooit stooit commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Part of 2.3.0. Merge this first: feat/oauth-connect and the branches on it include it.

What changes

  • Renamed pages keep working. When the alias of a published node or term changes (for example Pathauto after a new title), the old address is unpublished and now also gets a 301 to the new one. The translation in the alias language decides. With the Redirect module on, nothing changes: its redirects are pushed as before.
  • Deleted content leaves nothing behind. A deleted node or term used to send its /node/N (or /taxonomy/term/N) redirect again during delete, so the internal path kept a 301 to a page that was gone. Delete now unpublishes the internal paths (only the prefixed one when one translation is deleted).
  • Config schema. Adds the schema for the quant_metadata Views field and removes a copy of Views UI options from the file metadata view, so the shipped views pass strict config schema checks.

How it was tested

  • Kernel tests: AliasChangeRedirectTest (3), EntityDeleteUnpublishTest (2). Both failed before the change.
  • Staging rehearsal on a Drupal 11 demo site: a renamed article answered 301 at its old URL within 10 s; a deleted page and its /node/N returned 404 (before: /node/N kept a 301).
  • Whole module suite on Drupal 11.4: 141 pass, 1 skipped. phpcs (Drupal, DrupalPractice) clean on changed files.

Without the Redirect module, a changed alias (for example Pathauto after a
title change) left a 404 at the old URL on the static site. The old alias
now gets a 301 to the new one, for published nodes and terms only. With the
Redirect module on, its own redirect entity is pushed as before.
Installing the module failed strict config schema checks for
views.view.quant_metadata_node.
…leted

A deleted published node or term sent its internal-path redirect again,
because the entity is still published during delete. /node/N kept a 301
to a page that no longer exists. Deleted content now unpublishes its
internal paths (the prefixed one only, for one deleted translation).
The file_link formatter settings of views.view.quant_metadata_file carried
a copy of Views UI options, which fails strict config schema checks.
…ts in CI

CI (Drupal 11.1) failed: config/install/quant.settings.yml held 0/1 for keys
the schema types as boolean. Drupal 11.1 installs module config as trusted
data, without casting it, so the strict schema check saw integers. Drupal
11.4 casts on save, which is why a local 11.4 run passed. The install config
now holds true/false, and update 9009 casts integers that existing sites
stored.

CI now starts a PHP web server and sets SIMPLETEST_BASE_URL, so the
functional tests run instead of failing on the missing base URL.
CI (Drupal 11.1, which installs module config without casting it) still
failed on quant.token_settings. A new kernel test checks every config/install
and config/optional file of quant and its submodules against its schema, as
the files are on disk, and lists every mismatch in one run. It found:
- quant.token_settings disable/strict and the Quant Search entity settings
  stored 0/1 for booleans: now true/false; update 9009 casts them on
  existing sites.
- The quant_metadata Views field option kept 0 for each unticked key (from
  checkboxes), against its list-of-strings schema: the shipped views keep
  only the ticked keys, the field drops unticked keys on save, and update
  9010 filters saved views.
CI also installs drupal/webform, so the Quant Forms tests can run.
@stooit
stooit merged commit 412c942 into 2.x Nov 9, 2026
2 checks passed
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.

1 participant