Improve landing page.
It's possible to select which transactions to show
This commit is contained in:
@@ -9,12 +9,25 @@ templates = get_jinja_renderer()
|
|||||||
|
|
||||||
|
|
||||||
@root_router.get("/")
|
@root_router.get("/")
|
||||||
async def landing_page(request: Request, user: UserDep, session: SessionDep):
|
async def landing_page(
|
||||||
|
request: Request, user: UserDep, session: SessionDep, account_id: int | None = None
|
||||||
|
):
|
||||||
|
focused_account = None
|
||||||
transactions = []
|
transactions = []
|
||||||
for account in user.accounts:
|
for account in user.accounts:
|
||||||
|
if account_id is not None and account.id != account_id:
|
||||||
|
continue
|
||||||
|
if account_id is not None and account.id == account_id:
|
||||||
|
focused_account = account
|
||||||
transactions += account.transactions
|
transactions += account.transactions
|
||||||
|
|
||||||
transactions = sorted(transactions, key=lambda t: t.timestamp)
|
transactions = sorted(transactions, key=lambda t: t.timestamp)
|
||||||
return templates.TemplateResponse(
|
return templates.TemplateResponse(
|
||||||
"index.html.jinja",
|
"index.html.jinja",
|
||||||
context={"request": request, "user": user, "transactions": transactions},
|
context={
|
||||||
|
"request": request,
|
||||||
|
"user": user,
|
||||||
|
"transactions": transactions,
|
||||||
|
"focused_account": focused_account,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -8,16 +8,17 @@
|
|||||||
{% if user.accounts|length > 0 %}
|
{% if user.accounts|length > 0 %}
|
||||||
{% for account in user.accounts %}
|
{% for account in user.accounts %}
|
||||||
<div class="col-md-6 col-lg-4">
|
<div class="col-md-6 col-lg-4">
|
||||||
<div class="card">
|
<div class="card{% if focused_account and focused_account.id == account.id %} border-primary border-3 shadow-lg{% endif %}">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">{{ account.name }}</h5>
|
<h5 class="card-title">{{ account.name }}</h5>
|
||||||
<p class="h3 mb-2 {% if account.balance < 0 %}text-danger{% else %}text-success{% endif %}">
|
<p class="h3 mb-2 {% if account.balance < 0 %}text-danger{% else %}text-success{% endif %}">
|
||||||
{{ '%.2f' | format(account.balance) }} €
|
{{ account.balance | format_number }} €
|
||||||
</p>
|
</p>
|
||||||
|
{% if not focused_account or (focused_account.id != account.id) %}
|
||||||
<div class="d-flex gap-2 mt-3">
|
<div class="d-flex gap-2 mt-3">
|
||||||
<a href="#" class="btn btn-sm btn-outline-primary">Transaktionen</a>
|
<a href="/?account_id={{ account.id }}" class="btn btn-sm btn-outline-primary">Transaktionen ansehen</a>
|
||||||
<a href="#" class="btn btn-sm btn-success">Aufladen</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -35,8 +36,8 @@
|
|||||||
<!-- Latest Transactions Section -->
|
<!-- Latest Transactions Section -->
|
||||||
<div class="transactions-section">
|
<div class="transactions-section">
|
||||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||||
<h2 class="h3 mb-0">Letzte Buchungen</h2>
|
<h2 class="h3 mb-0">Letzte Buchungen{% if focused_account %} auf Konto "{{ focused_account.name }}"{% endif %}</h2>
|
||||||
<a href="#" class="btn btn-outline-primary btn-sm">Alle ansehen</a>
|
{% if focused_account %}<a href="/" class="btn btn-primary btn-sm">Alle Konten ansehen</a>{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -57,7 +58,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="text-end ms-3">
|
<div class="text-end ms-3">
|
||||||
<span class="fs-5 fw-bold {% if transaction.total_amount < 0 %}text-danger{% else %}text-success{% endif %}">
|
<span class="fs-5 fw-bold {% if transaction.total_amount < 0 %}text-danger{% else %}text-success{% endif %}">
|
||||||
{{ '%+.2f' | format(transaction.total_amount | default(0)) }} €
|
{{ transaction.total_amount | format_number }} €
|
||||||
</span>
|
</span>
|
||||||
{% if transaction.quantity %}
|
{% if transaction.quantity %}
|
||||||
<div class="small text-muted">{{ transaction.quantity }} €</div>
|
<div class="small text-muted">{{ transaction.quantity }} €</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user