From bc1c7fa1ea307a004cc8886a0e9b8ea857557a9e Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Tue, 27 Oct 2020 12:09:55 +0100 Subject: [PATCH] Add filter to list all templates in a directory --- pgweb/core/templatetags/pgfilters.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pgweb/core/templatetags/pgfilters.py b/pgweb/core/templatetags/pgfilters.py index 213ff4d6..f2fc8232 100644 --- a/pgweb/core/templatetags/pgfilters.py +++ b/pgweb/core/templatetags/pgfilters.py @@ -2,7 +2,10 @@ from django.template.defaultfilters import stringfilter from django import template from django.utils.safestring import mark_safe from django.template.loader import get_template +from django.conf import settings +import os +from pathlib import Path import json import pynliner @@ -103,6 +106,13 @@ def joinandor(value, andor): return ", ".join([str(x) for x in value[:-1]]) + ' ' + andor + ' ' + str(value[-1]) +@register.filter() +def list_templates(value): + for f in Path(os.path.join(settings.PROJECT_ROOT, '../templates/', value)).iterdir(): + if f.is_file() and f.suffix == '.html': + yield f.stem + + @register.simple_tag(takes_context=True) def git_changes_link(context): return mark_safe('View change history.'.format(context.template_name))