blob: 50aa02de0a2c0b565bb3cc3728a64fbd31190f9d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
from flask import (
render_template,
)
from flask_login import current_user, login_required
from sqlalchemy import func
from .blueprint import tracker
from ..model import Category, Expense
from .. import db
@tracker.route("/cat/<int:id>")
@login_required
def cat(id: int) -> str:
"""
The per category view of the the user expense.
"""
category = db.one_or_404(db.select(Category).where(Category.id == id))
total = db.session.scalars(
db.select(func.coalesce(func.sum(Expense.amount), 0)).where(
Expense.user == current_user, Expense.category == category
)
).all()
table = db.session.scalars(
db.select(Expense).where(
Expense.user == current_user, Expense.category == category
)
).all()
return render_template("tracker/cat.html", table=table, total=total, category=category)
|