summaryrefslogtreecommitdiffstats
path: root/utils/viewdecorators.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/viewdecorators.py')
-rw-r--r--utils/viewdecorators.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/utils/viewdecorators.py b/utils/viewdecorators.py
new file mode 100644
index 0000000..8f96c07
--- /dev/null
+++ b/utils/viewdecorators.py
@@ -0,0 +1,21 @@
+from functools import wraps
+from flask import render_template, request
+
+
+# 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