Adds custom date range filtering to transactions
Enables users to filter transactions by a custom date range, providing more flexibility in viewing transaction history. Prioritizes custom date range over preset days for filtering. Displays a warning if a user attempts to apply a custom date range without selecting both start and end dates.
This commit is contained in:
parent
f2df2f543b
commit
1d2eb05c36
4 changed files with 162 additions and 23 deletions
21
views_api.py
21
views_api.py
|
|
@ -399,7 +399,9 @@ async def api_get_user_entries(
|
|||
offset: int = 0,
|
||||
filter_user_id: str = None,
|
||||
filter_account_type: str = None, # 'asset' for receivable, 'liability' for payable
|
||||
days: int = 5, # Default 5 days, options: 5, 30, 60, 90
|
||||
days: int = 15, # Default 15 days, options: 15, 30, 60
|
||||
start_date: str = None, # ISO format: YYYY-MM-DD
|
||||
end_date: str = None, # ISO format: YYYY-MM-DD
|
||||
) -> dict:
|
||||
"""
|
||||
Get journal entries that affect the current user's accounts from Fava/Beancount.
|
||||
|
|
@ -407,7 +409,12 @@ async def api_get_user_entries(
|
|||
Returns transactions in reverse chronological order with optional filtering.
|
||||
|
||||
Args:
|
||||
days: Number of days to fetch (default: 5, options: 5, 30, 60, 90)
|
||||
days: Number of days to fetch (default: 15, options: 15, 30, 60)
|
||||
start_date: Start date for custom range (YYYY-MM-DD). Requires end_date.
|
||||
end_date: End date for custom range (YYYY-MM-DD). Requires start_date.
|
||||
|
||||
Note:
|
||||
If both days and start_date/end_date are provided, start_date/end_date takes precedence.
|
||||
"""
|
||||
from lnbits.settings import settings as lnbits_settings
|
||||
from .fava_client import get_fava_client
|
||||
|
|
@ -422,9 +429,13 @@ async def api_get_user_entries(
|
|||
# Regular user can only see their own entries
|
||||
target_user_id = wallet.wallet.user
|
||||
|
||||
# Get journal entries from Fava (default last 5 days for performance)
|
||||
# User can request 30, 60, or 90 days via query parameter
|
||||
all_entries = await fava.get_journal_entries(days=days)
|
||||
# Get journal entries from Fava
|
||||
# Priority: custom date range > days > default (5 days)
|
||||
all_entries = await fava.get_journal_entries(
|
||||
days=days,
|
||||
start_date=start_date,
|
||||
end_date=end_date
|
||||
)
|
||||
|
||||
# Filter and transform entries
|
||||
filtered_entries = []
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue