Skip to content

Bug: completed_at filter missing from Views filter dropdown in UI #9507

Description

@mendelmodge

Bug: completed_at filter missing from Views filter dropdown in UI

Problem

When configuring filters on a View (e.g., "Done this month"), the filter dropdown in the UI does not include a Completed at option. The available date-based filters shown in the dropdown are:

  • Start date
  • Target date
  • Created at
  • Updated at

Completed at is missing despite being fully supported by the backend.

Evidence

The backend explicitly handles completed_at as a filter key in apps/api/plane/utils/issue_filters.py:

def filter_completed_at(params, issue_filter, method, prefix=""):
    if method == "GET":
        completed_ats = params.get("completed_at").split(",")
        if len(completed_ats) and "" not in completed_ats:
            date_filter(
                issue_filter=issue_filter,
                date_term=f"{prefix}completed_at__date",
                queries=completed_ats,
            )
    else:
        if params.get("completed_at", None) and len(params.get("completed_at")):
            date_filter(
                issue_filter=issue_filter,
                date_term=f"{prefix}completed_at__date",
                queries=params.get("completed_at", []),
            )
    return issue_filter

And it is registered in the ISSUE_FILTER dictionary:

ISSUE_FILTER = {
    ...
    "completed_at": filter_completed_at,
    ...
}

The IssueView model also has filters and query JSON fields that correctly process completed_at when set via API. The filter works end-to-end at the backend level — it's just not exposed in the frontend filter dropdown.

Expected behaviour

Completed at should appear in the Views filter dropdown alongside the other date filters (Start date, Target date, Created at, Updated at), allowing users to filter work items by their completion date (e.g., "completed in the last 30 days", "completed this month").

Workaround

The completed_at filter can be set via the API by PATCHing the view:

PATCH /api/workspaces/{slug}/projects/{project_id}/views/{view_id}/
Content-Type: application/json

{
  "filters": {
    "state_group": ["completed", "cancelled"],
    "completed_at": ["2026-06-29;after"]
  }
}

This correctly sets completed_at__date__gte in the view's query field and the filter works. However, since the frontend doesn't render the completed_at filter, it is not visible in the UI and may be lost if the user edits and saves the view through the UI.

Environment

  • Plane CE v1.3.1
  • Self-hosted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions