actualbudget / actualbudget/actual

[Bug]: Custom report conditions ignored when switching to data table view

Aperta
#7,644 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
TypeScript
Stelle
28.8k
Fork
3k
Merge medio
2g 11h
PR unite (30g)
65

Descrizione

## What happened?

When a custom report has a **conditions/filter** set (e.g. Notes `contains` `#groceries`), the filter is applied correctly in graph views (AreaGraph, etc.) but is **silently ignored** when switching to the data table view. The last-used view mode also persists, so subsequent opens of the same report from a dashboard card open in data table mode with no filter applied.

- Expected: conditions apply in all view modes (graph and data table)
- Actual: conditions apply only in graph view; data table shows all transactions regardless of saved conditions

Screenshots below show the difference (AreaGraph filtered vs data table unfiltered).

## How can we reproduce the issue?

1. Create a custom report — e.g. Name: "Groceries", Graph: AreaGraph, add filter **Notes → contains → `#groceries`**
2. Save. Verify the AreaGraph chart shows only `#groceries`-tagged data ✓
3. Click the **data table icon** (⊞) to switch to table view
4. Observe: the table shows **all transactions** — the `contains` condition is not applied ✗
5. Navigate away (e.g. go to Budget, then back to Reports)
6. Click the same report card — it reopens in data table mode with no filter applied ✗

**Additional finding:** the `hasTags` operator is listed in `@actual-app/api`'s `disallowedOps` for custom report conditions, causing those conditions to be silently discarded entirely. We worked around this by using `contains` instead — but `contains` still fails in the data table view. This suggests condition handling may be implemented per-renderer rather than at the data layer.

## Where are you hosting Actual?

Docker (self-hosted)

## What browsers are you seeing the problem on?

Chrome

## Operating System

Linux

---

_Screenshots to follow in comments._

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start by tracing custom report condition handling from the AreaGraph and data table views, then inspect @actual-app/api's disallowedOps handling for the hasTags operator. Reproduce the Notes contains case and compare the conditions passed to each view. Done means saved conditions filter both views and remain applied when the report is reopened from a dashboard card.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript
Ambito
analytics, frontend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.