summaryrefslogtreecommitdiff
path: root/app/flask_extend.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2013-04-14 21:00:24 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2013-04-14 21:00:24 +0200
commit18f0c3c367a4dd53aff163f717bb62fb661e8600 (patch)
treea9f28ed969d7332efe9ca281cde99a25d263bef6 /app/flask_extend.py
parenta98445a75c3ac2a46540eee146129f7c77e005d5 (diff)
downloadkosten-18f0c3c367a4dd53aff163f717bb62fb661e8600.tar.gz
kosten-18f0c3c367a4dd53aff163f717bb62fb661e8600.tar.bz2
kosten-18f0c3c367a4dd53aff163f717bb62fb661e8600.zip
Backport @app.template_test; make the functions in expenses filters/tests
Diffstat (limited to 'app/flask_extend.py')
-rw-r--r--app/flask_extend.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/flask_extend.py b/app/flask_extend.py
new file mode 100644
index 0000000..5096d17
--- /dev/null
+++ b/app/flask_extend.py
@@ -0,0 +1,32 @@
+from flask import Flask as _Flask
+from flask import Blueprint as _Blueprint
+
+if not hasattr(_Flask, 'template_test'):
+# model `template_test` -- introduced with flask-0.10
+ class Flask(_Flask):
+ def template_test(self, name=None):
+ def decorator(f):
+ self.add_template_test(f, name=name)
+ return f
+ return decorator
+
+ def add_template_test(self, f, name=None):
+ self.jinja_env.tests[name or f.__name__] = f
+
+ class Blueprint(_Blueprint):
+ def app_template_test(self, name=None):
+ def decorator(f):
+ self.add_app_template_test(f, name=name)
+ return f
+ return decorator
+
+ def add_app_template_test(self, f, name=None):
+ def register_template(state):
+ state.app.jinja_env.tests[name or f.__name__] = f
+ self.record_once(register_template)
+
+else:
+ Flask = _Flask
+ Blueprint = _Blueprint
+
+del _Flask, _Blueprint