From 4561ac0e95da990caf42bebaac7d3ca48deb53ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Sat, 14 Sep 2013 01:00:16 +0200 Subject: Pie stuff --- app/views/__init__.py | 2 ++ app/views/expenses.py | 21 +++++++++++++++++---- templates/expenses/show.jinja | 5 ++--- 3 files changed, 21 insertions(+), 7 deletions(-) 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() diff --git a/templates/expenses/show.jinja b/templates/expenses/show.jinja index 8052757..4b6e362 100644 --- a/templates/expenses/show.jinja +++ b/templates/expenses/show.jinja @@ -12,7 +12,7 @@ {% endblock %} {% block content %} - {% for e in exps %} + {% for e, p in zip(exps,pies) %} {% if exps | length > 1 %}

{{e|date}}

{% endif %}
@@ -30,8 +30,7 @@ {{exp.day}}.{{exp.month}}. -- {{exp.description}}: {{exp.expense | eur}} {% endcall %}
-
- +
{% endfor %} -- cgit v1.2.3