summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2013-09-04 15:19:30 +0000
committerpad <pad@vm-pad-b.spline.inf.fu-berlin.de>2013-09-04 15:19:30 +0000
commit7eb1c777059f88d7a8372deccfdfa8c622c3bff1 (patch)
treec566b54f72b8dc3adc555f57d084495b7ae88755
parent44fefb0a7f918f38affc09ce9065edec882b93ec (diff)
downloadpadlite-teams-7eb1c777059f88d7a8372deccfdfa8c622c3bff1.tar.gz
padlite-teams-7eb1c777059f88d7a8372deccfdfa8c622c3bff1.tar.bz2
padlite-teams-7eb1c777059f88d7a8372deccfdfa8c622c3bff1.zip
utils: add templated decorator from flask patterns
-rw-r--r--utils.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/utils.py b/utils.py
new file mode 100644
index 0000000..147f048
--- /dev/null
+++ b/utils.py
@@ -0,0 +1,20 @@
+from functools import wraps
+from flask import request, render_template
+
+# using http://flask.pocoo.org/docs/patterns/viewdecorators/
+def templated(template=None):
+ def decorator(f):
+ @wraps(f)
+ def decorated_function(*args, **kwargs):
+ template_name = template
+ if template_name is None:
+ template_name = request.endpoint \
+ .replace('.', '/') + '.html'
+ ctx = f(*args, **kwargs)
+ if ctx is None:
+ ctx = {}
+ elif not isinstance(ctx, dict):
+ return ctx
+ return render_template(template_name, **ctx)
+ return decorated_function
+ return decorator