makeplane / makeplane/plane

Bug: completed_at filter missing from Views filter dropdown in UI

Open Beginner friendly
#9,508 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
59.6k
Forks
5.8k
Avg merge
1d 22h
Merged PRs (30d)
49

Description

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the frontend code for the Views filter dropdown and compare its date-filter options with the backend support in apps/api/plane/utils/issue_filters.py, including ISSUE_FILTER. Add Completed at alongside the existing date filters, then verify that a View can set, display, save, and retain the completed_at filter through the UI.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, typescript
Domain
backend, frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.