[PR #6471] [CLOSED] [WIP] Add a category group filter to the transactions pages #20914

Closed
opened 2026-04-14 21:49:21 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/6471
Author: @ericparton
Created: 12/21/2025
Status: Closed

Base: masterHead: 3791-category-group-filtering


📝 Commits (1)

  • a385539 Add a category group filter to the transactions pages

📊 Changes

20 files changed (+174 additions, -9 deletions)

View changed files

📝 packages/desktop-client/e2e/transactions.test.ts (+36 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-1-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-2-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-3-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-4-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-5-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-6-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-7-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-8-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-9-chromium-linux.png (+0 -0)
packages/desktop-client/src/components/autocomplete/GroupAutocomplete.tsx (+34 -0)
packages/desktop-client/src/components/autocomplete/GroupList.tsx (+55 -0)
📝 packages/desktop-client/src/components/filters/FiltersMenu.tsx (+1 -0)
📝 packages/desktop-client/src/components/rules/Value.tsx (+5 -2)
📝 packages/desktop-client/src/components/util/GenericInput.tsx (+15 -1)
📝 packages/loot-core/src/server/aql/compiler.ts (+2 -6)
📝 packages/loot-core/src/server/transactions/transaction-rules.ts (+2 -0)
📝 packages/loot-core/src/shared/rules.ts (+7 -0)
📝 packages/loot-core/src/types/models/rule.ts (+11 -0)
upcoming-release-notes/6471.md (+6 -0)

📄 Description

resolves #3791 and resolves #4031 (they're duplicate issues from what I can tell).

I had to fix what I believe to be a subtle bug in the AQL compiler in order to get this to work.

In most cases, the JOIN clauses in SELECT queries were being generated using table names instead of the corresponding view names, which was a problem here because the name of the category group column in category table does not match the AQL schema, but the name of the category group column in the category view does match the AQL schema.

Refactoring the AQL compiler to always use views instead of tables (if a view exists) when generating JOIN clauses allows the necessary queries to be generated correctly and appears to be the desired behavior based on documentation on the Actual website and in the code itself.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/6471 **Author:** [@ericparton](https://github.com/ericparton) **Created:** 12/21/2025 **Status:** ❌ Closed **Base:** `master` ← **Head:** `3791-category-group-filtering` --- ### 📝 Commits (1) - [`a385539`](https://github.com/actualbudget/actual/commit/a38553946898234f625a33e5b1dc45062fd7b840) Add a category group filter to the transactions pages ### 📊 Changes **20 files changed** (+174 additions, -9 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/e2e/transactions.test.ts` (+36 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-1-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-2-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-3-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-4-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-5-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-6-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-7-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-8-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/transactions.test.ts-snapshots/Transactions-filters-transactions-by-group-9-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/src/components/autocomplete/GroupAutocomplete.tsx` (+34 -0) ➕ `packages/desktop-client/src/components/autocomplete/GroupList.tsx` (+55 -0) 📝 `packages/desktop-client/src/components/filters/FiltersMenu.tsx` (+1 -0) 📝 `packages/desktop-client/src/components/rules/Value.tsx` (+5 -2) 📝 `packages/desktop-client/src/components/util/GenericInput.tsx` (+15 -1) 📝 `packages/loot-core/src/server/aql/compiler.ts` (+2 -6) 📝 `packages/loot-core/src/server/transactions/transaction-rules.ts` (+2 -0) 📝 `packages/loot-core/src/shared/rules.ts` (+7 -0) 📝 `packages/loot-core/src/types/models/rule.ts` (+11 -0) ➕ `upcoming-release-notes/6471.md` (+6 -0) </details> ### 📄 Description resolves #3791 and resolves #4031 (they're duplicate issues from what I can tell). I had to fix what I believe to be a subtle bug in the AQL compiler in order to get this to work. In most cases, the JOIN clauses in SELECT queries were being generated using table names instead of the corresponding view names, which was a problem here because the name of the category group column in category table does not match the AQL schema, but the name of the category group column in the category view _does_ match the AQL schema. Refactoring the AQL compiler to always use views instead of tables (if a view exists) when generating JOIN clauses allows the necessary queries to be generated correctly and appears to be the desired behavior based on documentation on the Actual website and in the code itself. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-14 21:49:21 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#20914