From 4561ac0e95da990caf42bebaac7d3ca48deb53ce Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Sat, 14 Sep 2013 01:00:16 +0200 Subject: Pie stuff --- app/views/__init__.py | 2 ++ app/views/expenses.py | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'app') diff --git a/app/views/__init__.py b/app/views/__init__.py index 6405d3e..c4c362b 100644 --- a/app/views/__init__.py +++ b/app/views/__init__.py @@ -6,6 +6,8 @@ from .. import app, db # check for mobile visitors mobile_checks = ["J2ME", "Opera Mini"] +app.add_template_global(zip) + @app.before_request def handle_mobile(): ua = request.environ.get("HTTP_USER_AGENT", "") diff --git a/app/views/expenses.py b/app/views/expenses.py index 57a777a..893c367 100644 --- a/app/views/expenses.py +++ b/app/views/expenses.py @@ -27,6 +27,19 @@ def calc_month_exp(year, month): return MonthExpense(datetime.date(year, month, 1), exps) +def pie_stuff(exp): + expenses = {} + for c in exp.catexps: + expenses[c.cat.name] = float(c.expense) + + for c in Category.query.order_by(Category.name).all(): + yield (c.name, expenses.get(c.name, 0.0)) + +def calc_month_and_pie(year, month): + exp = calc_month_exp(year,month) + pie = pie_stuff(exp) + return (exp, dict(pie)) + @mod.app_template_filter() def prev_date(exp): if exp.date.month == 1: @@ -58,13 +71,13 @@ mod.add_url_rule("/", endpoint = "show_date_str", build_only = True) def show(): d = datetime.date.today() - first = calc_month_exp(d.year, d.month) + first, pfirst = calc_month_and_pie(d.year, d.month) if d.month == 1: - second = calc_month_exp(d.year - 1, 12) + second, psecond = calc_month_and_pie(d.year - 1, 12) else: - second = calc_month_exp(d.year, d.month - 1) + second, psecond = calc_month_and_pie(d.year, d.month - 1) - return { 'exps' : [first, second] } + return { 'exps' : [first, second], 'pies': [pfirst, psecond] } @mod.route("/edit/", methods=("GET", "POST")) @templated() -- cgit v1.2.3-70-g09d2