diff --git a/flatfilecms/models.py b/flatfilecms/models.py index 88ee93e..744a84a 100644 --- a/flatfilecms/models.py +++ b/flatfilecms/models.py @@ -72,10 +72,7 @@ class Folder(dict): self.name = name self.parent = parent if parent is not None: - self.url = "f{parent.url}/{name}" self.data_path = parent.data_path - else: - self.url = '' for entry in AssetResolver().resolve(path).listdir(): asset = f"{path}/{entry}" if AssetResolver().resolve(asset).isdir(): @@ -103,13 +100,18 @@ class Folder(dict): path = PurePath(asset) self[path.name] = Folder(path.name, self, asset) + def walk(self): + for item in self.values(): + yield item + if isinstance(item, Folder): + yield from item.walk() + class Document(object): def __init__(self, name, parent, path): self.name = name self.parent = parent self.path = path - self.url = f"{parent.url}/{name}" self.data_path = parent.data_path diff --git a/flatfilecms/templates/blogposts.jinja2 b/flatfilecms/templates/blogposts.jinja2 index ce6678e..68d61d5 100644 --- a/flatfilecms/templates/blogposts.jinja2 +++ b/flatfilecms/templates/blogposts.jinja2 @@ -1,2 +1,7 @@ {% extends "layout.jinja2" %} {% if header_class is not defined %}{% set header_class="light" %}{%endif%} +{% block content %} +{% for item in request.root.walk()|selectattr("page") if item.page[] %} +{{ item }} +{% endfor %} +{% endblock %} diff --git a/tests/pages/blogpost2.yaml b/tests/pages/blogpost2.yaml index a430972..83fbf9b 100644 --- a/tests/pages/blogpost2.yaml +++ b/tests/pages/blogpost2.yaml @@ -1,5 +1,3 @@ ---- title: Блоговая запись 2 в формате YAML template: blogpost content: Hello World! 2 ----