summaryrefslogtreecommitdiffstats
path: root/webapp/django/template/loaders/filesystem.py
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/django/template/loaders/filesystem.py')
-rw-r--r--webapp/django/template/loaders/filesystem.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/webapp/django/template/loaders/filesystem.py b/webapp/django/template/loaders/filesystem.py
new file mode 100644
index 0000000000..9997eb9a54
--- /dev/null
+++ b/webapp/django/template/loaders/filesystem.py
@@ -0,0 +1,31 @@
+"""
+Wrapper for loading templates from the filesystem.
+"""
+
+from django.conf import settings
+from django.template import TemplateDoesNotExist
+from django.utils._os import safe_join
+
+def get_template_sources(template_name, template_dirs=None):
+ if not template_dirs:
+ template_dirs = settings.TEMPLATE_DIRS
+ for template_dir in template_dirs:
+ try:
+ yield safe_join(template_dir, template_name)
+ except ValueError:
+ # The joined path was located outside of template_dir.
+ pass
+
+def load_template_source(template_name, template_dirs=None):
+ tried = []
+ for filepath in get_template_sources(template_name, template_dirs):
+ try:
+ return (open(filepath).read().decode(settings.FILE_CHARSET), filepath)
+ except IOError:
+ tried.append(filepath)
+ if tried:
+ error_msg = "Tried %s" % tried
+ else:
+ error_msg = "Your TEMPLATE_DIRS setting is empty. Change it to point to at least one template directory."
+ raise TemplateDoesNotExist, error_msg
+load_template_source.is_usable = True