• 
      

    Search: Add faceted search view routing and templates

    Review Request #15054 — Created May 13, 2026 and updated

    Information

    Review Board
    release-8.x

    Reviewers

    Updates RBSearchView and adds the templates and CSS for the new faceted
    search results page.

    RBSearchView.dispatch now checks whether the active backend exposes
    get_es_client. If it does, a FacetedSearchEngine is constructed and
    _use_faceted is set to True. 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_names returns search/results.html for the faceted path and
    search/results_legacy.html for the Haystack path.

    get_context_data on the faceted path calls FacetedSearchEngine.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.html is the new template for the faceted path, providing the filter
    sidebar and results list. results_legacy.html is the existing template
    renamed, unchanged in behaviour.

    search.less adds styles for the filter sidebar, bucket counts, active filter
    indicators, and the Contents filter checkbox group.

    _comment.html and _group.html are new partial templates for rendering
    comment and group search results inline.

    Verified that dispatch correctly 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.

    Summary ID Author
    Search: Add faceted search view routing and templates
    bdeb43497a0aca208a555832cbf3bd415624d722 DanielCasaresIglesias
    Description From Last Updated

    'django.contrib.auth.models.User' imported but unused Column: 1 Error code: F401

    reviewbot reviewbot

    'django.urls.reverse' imported but unused Column: 1 Error code: F401

    reviewbot reviewbot

    line too long (138 > 79 characters) Column: 80 Error code: E501

    reviewbot reviewbot

    continuation line under-indented for visual indent Column: 27 Error code: E128

    reviewbot reviewbot

    line too long (82 > 79 characters) Column: 80 Error code: E501

    reviewbot reviewbot

    line too long (138 > 79 characters) Column: 80 Error code: E501

    reviewbot reviewbot

    continuation line under-indented for visual indent Column: 27 Error code: E128

    reviewbot reviewbot

    redefinition of unused 'User' from line 21 Column: 9 Error code: F811

    reviewbot reviewbot

    line too long (81 > 79 characters) Column: 80 Error code: E501

    reviewbot reviewbot

    local variable 'parts' is assigned to but never used Column: 9 Error code: F841

    reviewbot reviewbot

    line too long (81 > 79 characters) Column: 80 Error code: E501

    reviewbot reviewbot

    line break before binary operator Column: 21 Error code: W503

    reviewbot reviewbot

    'haystack.query.EmptySearchQuerySet' imported but unused Column: 1 Error code: F401

    reviewbot reviewbot

    multiple spaces before keyword Column: 34 Error code: E272

    reviewbot reviewbot

    continuation line unaligned for hanging indent Column: 21 Error code: E131

    reviewbot reviewbot

    continuation line unaligned for hanging indent Column: 21 Error code: E131

    reviewbot reviewbot

    line break before binary operator Column: 21 Error code: W503

    reviewbot reviewbot
    Checks run (1 failed, 1 succeeded)
    flake8 failed.
    JSHint passed.

    flake8

    dan.casares
    Review request changed
    Commits:
    Summary ID Author
    Search: Add faceted search view routing and templates
    407e9e37a703f4ae0878fc5ce4ab865cd41f92f3 DanielCasaresIglesias
    Search: Add faceted search view routing and templates
    9b9ccd0c68798fc5b86004152ef7f80455032c62 DanielCasaresIglesias

    Checks run (1 failed, 1 succeeded)

    flake8 failed.
    JSHint passed.

    flake8

    dan.casares
    Review request changed
    Commits:
    Summary ID Author
    Search: Add faceted search view routing and templates
    9b9ccd0c68798fc5b86004152ef7f80455032c62 DanielCasaresIglesias
    Search: Add faceted search view routing and templates
    0de4195f9a7315e369db6bcf7a527a92ecb2c77c DanielCasaresIglesias

    Checks run (1 failed, 1 succeeded)

    flake8 failed.
    JSHint passed.

    flake8

    dan.casares
    Review request changed
    Commits:
    Summary ID Author
    Search: Add faceted search view routing and templates
    0de4195f9a7315e369db6bcf7a527a92ecb2c77c DanielCasaresIglesias
    Search: Add faceted search view routing and templates
    bdeb43497a0aca208a555832cbf3bd415624d722 DanielCasaresIglesias

    Checks run (2 succeeded)

    flake8 passed.
    JSHint passed.