Bug: completed_at filter missing from Views filter dropdown in UI
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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