summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--app/views/__init__.py7
-rw-r--r--app/views/expenses.py21
-rw-r--r--templates/pages/show.jinja8
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("/<int(fixed_digits=4):year>/<int(fixed_digits=2):month>")
def show_date(year, month):
c = calc_month_exp(year, month)
return render_template("pages/show.jinja", exps = [c])
+mod.add_url_rule("/<path:p>", 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 %}