Fix empty-category nav and route behavior
Some checks failed
CI / nightly-e2e (pull_request) Has been skipped
CI / deploy (pull_request) Has been skipped
CI / ci (pull_request) Successful in 1m17s
CI / pr-e2e (pull_request) Failing after 44s

Use category-state-driven queries for nav and category listing routes, and add regression tests for empty but valid categories.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Mark
2026-03-03 12:39:47 +00:00
parent f7ca4bc44b
commit 04a55844fd
4 changed files with 27 additions and 14 deletions

View File

@@ -4,7 +4,7 @@ from django import template
from django.utils.safestring import mark_safe
from wagtail.models import Site
from apps.blog.models import ArticleIndexPage, TagMetadata
from apps.blog.models import ArticleIndexPage, Category, TagMetadata
from apps.core.models import SiteSettings
from apps.legal.models import LegalPage
@@ -58,9 +58,7 @@ def get_categories_nav(context):
index_page = index_qs.first()
if not index_page:
return []
categories = index_page.get_listing_context(
request, active_category=None
)["available_categories"].filter(show_in_nav=True)
categories = Category.objects.filter(show_in_nav=True).order_by("sort_order", "name")
return [
{
"name": category.name,

View File

@@ -37,3 +37,14 @@ def test_categories_nav_tag_renders_category_link(client, home_page):
resp = client.get("/")
assert resp.status_code == 200
assert "/articles/category/reviews/" in resp.content.decode()
@pytest.mark.django_db
def test_categories_nav_tag_includes_empty_nav_category(client, home_page):
index = ArticleIndexPage(title="Articles", slug="articles")
home_page.add_child(instance=index)
Category.objects.create(name="Benchmarks", slug="benchmarks", show_in_nav=True)
resp = client.get("/")
assert resp.status_code == 200
assert "/articles/category/benchmarks/" in resp.content.decode()