fix: Verknuepfte Buchungen brauchen keine Kategorie mehr

Eine verknuepfte Buchung gehoert zu einem Uebertrag und zaehlt in keiner
Auswertung. Trotzdem stand sie unter "Zu erledigen" und wurde in der
Buchungsliste nach einer Kategorie gefragt – Arbeit, die nichts bewirkt, und
ein falsches Signal: Sie sah aus, als fehle noch etwas.

Der Filter fuer offene Buchungen laesst verknuepfte jetzt aus, und in der
Buchungsliste steht bei ihnen ein Strich statt der Auswahl – so wie bei einem
echten Uebertrag.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-30 13:07:29 +02:00
co-authored by Claude Opus 5
parent bb748cc092
commit 6ed91ddd58
3 changed files with 48 additions and 3 deletions
+12 -1
View File
@@ -9,6 +9,7 @@ from datetime import date
from fastapi import APIRouter, Depends, HTTPException, Query, status
from pydantic import BaseModel
from sqlalchemy import select, union
from sqlalchemy.orm import Session
from ..database import get_db
@@ -19,6 +20,7 @@ from ..models import (
InboxItem,
InboxStatus,
Transaction,
TransferLink,
TxnType,
User,
)
@@ -134,7 +136,16 @@ def list_transactions(
if category_id is not None:
q = q.filter(Transaction.category_id == category_id)
if uncategorized:
q = q.filter(Transaction.category_id.is_(None), Transaction.type != TxnType.transfer)
# Verknüpfte Buchungen sind erledigt: Sie gehören zu einem Übertrag und
# zählen in keiner Auswertung. Sie hier nach einer Kategorie zu fragen,
# verlangt Arbeit, die nichts bewirkt.
verknuepft = union(
select(TransferLink.from_txn_id).where(TransferLink.owner_id == user.id),
select(TransferLink.to_txn_id).where(TransferLink.owner_id == user.id),
)
q = q.filter(Transaction.category_id.is_(None),
Transaction.type != TxnType.transfer,
Transaction.id.notin_(verknuepft))
if type is not None:
q = q.filter(Transaction.type == type)
if date_from is not None: