From 9fb5ed666cf428ae24ddcb1d5a306660526162be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Mon, 15 Apr 2013 00:29:18 +0200 Subject: Moved the 'date' filter to the top-level --- app/views/__init__.py | 7 +++++++ app/views/expenses.py | 21 ++++++++------------- templates/pages/show.jinja | 8 ++++---- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/views/__init__.py b/app/views/__init__.py index eed6d0a..d64b945 100644 --- a/app/views/__init__.py +++ b/app/views/__init__.py @@ -20,6 +20,13 @@ def static_url(s): def eur(s): return (u"%s EUR" % s) +@app.template_filter("date") +def format_date(s, format="%Y/%m"): + if hasattr(s, "date"): + return s.date.strftime(format) + else: + return s.strftime(format) + @app.errorhandler(404) def page_not_found (error): return render_template("404.jinja", page = request.path), 404 diff --git a/app/views/expenses.py b/app/views/expenses.py index 269d9bb..512c906 100644 --- a/app/views/expenses.py +++ b/app/views/expenses.py @@ -12,7 +12,7 @@ mod = Blueprint('expenses', __name__) def expense_form(obj=None): form = ExpenseForm(obj=obj) - form.category.query = Category.query.order_by("name") + form.category.query = Category.query.order_by(Category.name) return form def calc_month_exp(year, month): @@ -29,35 +29,30 @@ def calc_month_exp(year, month): @mod.app_template_filter() def prev_date(exp): if exp.date.month == 1: - return { "year": exp.date.year - 1, "month": 12 } + return exp.date.replace(year = exp.date.year - 1, month = 12) else: - return { "year": exp.date.year, "month": exp.date.month - 1 } + return exp.date.replace(month = exp.date.month - 1) @mod.app_template_filter() def next_date(exp): if exp.date.month == 12: - return { "year": exp.date.year + 1, "month": 1 } + return exp.date.replace(year = exp.date.year + 1, month = 1) else: - return { "year": exp.date.year, "month": exp.date.month + 1} + return exp.date.replace(month = exp.date.month + 1) @mod.app_template_test("last_date") def is_last(exp): return exp.date >= datetime.date.today().replace(day = 1) -@mod.app_template_filter("date") -def format_date(s): - if hasattr(s, "date"): - return "%s/%s" % (s.date.year, s.date.month) - else: - return "%(year)s/%(month)s" % s - @mod.route("//") def show_date(year, month): c = calc_month_exp(year, month) return render_template("pages/show.jinja", exps = [c]) +mod.add_url_rule("/", endpoint = "show_date_str", build_only = True) + @mod.route("/") -def show(year = None, month = None): +def show(): d = datetime.date.today() first = calc_month_exp(d.year, d.month) diff --git a/templates/pages/show.jinja b/templates/pages/show.jinja index 57bb1b3..4b5170f 100644 --- a/templates/pages/show.jinja +++ b/templates/pages/show.jinja @@ -34,13 +34,13 @@ {# Note: exps are given _reversed_, i.e. "exps | last" is the _first_ on the timeline #} - {% set d = exps | last | prev_date %} - {{ left_arrow(url_for(".show_date", **d), d | date) }} + {% set d = exps | last | prev_date | date %} + {{ left_arrow(url_for(".show_date_str", p = d), d) }} {% set first = exps | first %} {% if not first is last_date %} - {% set d = first | next_date %} - {{ right_arrow(url_for(".show_date", **d), d | date) }} + {% set d = first | next_date | date %} + {{ right_arrow(url_for(".show_date_str", p = d), d) }} {% endif %} {% endblock content %} -- cgit v1.2.3