Search: Add faceted search view routing and templates
Review Request #15054 — Created May 13, 2026 and updated — Latest diff uploaded
Updates
RBSearchViewand adds the templates and CSS for the new faceted
search results page.
RBSearchView.dispatchnow checks whether the active backend exposes
get_es_client. If it does, aFacetedSearchEngineis constructed and
_use_facetedis set toTrue. Any exception during construction falls back
silently to the existing Haystack path. Numeric queries still redirect directly
to the matching review request when accessible.
get_template_namesreturnssearch/results.htmlfor the faceted path and
search/results_legacy.htmlfor the Haystack path.
get_context_dataon the faceted path callsFacetedSearchEngine.search,
builds the group sidebar items with total counts, resolves human-readable
labels for searchable filter buckets (reviewer, group, repository), and
assembles the filter panel context including current values, bucket lists, and
option counts.
results.htmlis the new template for the faceted path, providing the filter
sidebar and results list.results_legacy.htmlis the existing template
renamed, unchanged in behaviour.
search.lessadds styles for the filter sidebar, bucket counts, active filter
indicators, and the Contents filter checkbox group.
_comment.htmland_group.htmlare new partial templates for rendering
comment and group search results inline.
Verified that
dispatchcorrectly routes to the faceted path when
Elasticsearch is available and falls back silently to the Haystack path when it
is not or when engine construction fails. Verified template selection, user
attachment on search hits, numeric query redirection, and Whoosh wildcard
rewriting. Confirmed the existing Haystack path is unaffected.