From deae2d39e519a3c620f2b8db95028494523b9232 Mon Sep 17 00:00:00 2001 From: CDaut Date: Fri, 17 Jun 2022 18:30:13 +0200 Subject: [PATCH] tree view for topics --- markdownblog/blog/templatetags/__init__.py | 0 markdownblog/blog/templatetags/tree_utils.py | 16 ++++++++++++++++ markdownblog/blog/views.py | 4 ++-- markdownblog/markdownblog/static/order_style.css | 11 +++++++++++ .../markdownblog/templates/base/base.html | 2 +- .../markdownblog/templates/blog/order.html | 6 ++++++ .../templates/blog/tree_view_template.html | 12 ++++++++++++ 7 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 markdownblog/blog/templatetags/__init__.py create mode 100644 markdownblog/blog/templatetags/tree_utils.py create mode 100644 markdownblog/markdownblog/static/order_style.css create mode 100644 markdownblog/markdownblog/templates/blog/tree_view_template.html diff --git a/markdownblog/blog/templatetags/__init__.py b/markdownblog/blog/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/markdownblog/blog/templatetags/tree_utils.py b/markdownblog/blog/templatetags/tree_utils.py new file mode 100644 index 0000000..19e458a --- /dev/null +++ b/markdownblog/blog/templatetags/tree_utils.py @@ -0,0 +1,16 @@ +from django import template + +from blog.models import Topic +from django.db.models import QuerySet + +register = template.Library() + + +@register.filter +def has_children(value) -> bool: + return not len(Topic.objects.filter(rootTopic=value)) == 0 + + +@register.filter +def all_children(value) -> QuerySet: + return Topic.objects.filter(rootTopic=value) diff --git a/markdownblog/blog/views.py b/markdownblog/blog/views.py index 51ab801..dcd2291 100644 --- a/markdownblog/blog/views.py +++ b/markdownblog/blog/views.py @@ -15,7 +15,8 @@ def viewblog(request) -> HttpResponse: @login_required def order(request): - return render(request, 'blog/order.html') + context = {'roottopics': Topic.objects.all().filter(rootTopic=None)} + return render(request, 'blog/order.html', context) @login_required @@ -42,7 +43,6 @@ def addpost(request) -> HttpResponse: def createmocks(request, objtype, n) -> HttpResponse: - topics = TopicFactory.create_batch(n) for topic in topics: diff --git a/markdownblog/markdownblog/static/order_style.css b/markdownblog/markdownblog/static/order_style.css new file mode 100644 index 0000000..aae99da --- /dev/null +++ b/markdownblog/markdownblog/static/order_style.css @@ -0,0 +1,11 @@ +.topic_list { + +} + +.topic_list_element { + box-shadow: 3px 3px 11px 4px rgb(231, 231, 231); + -webkit-box-shadow: 3px 3px 11px 4px rgb(231, 231, 231); + -moz-box-shadow: 3px 3px 11px 4px rgb(231, 231, 231); + padding: 0.5em; + margin: 0.5em; +} \ No newline at end of file diff --git a/markdownblog/markdownblog/templates/base/base.html b/markdownblog/markdownblog/templates/base/base.html index f30296d..c128845 100644 --- a/markdownblog/markdownblog/templates/base/base.html +++ b/markdownblog/markdownblog/templates/base/base.html @@ -37,7 +37,7 @@
  • - Mock 10 topics + Mock 10 topics
  • Mock Posts diff --git a/markdownblog/markdownblog/templates/blog/order.html b/markdownblog/markdownblog/templates/blog/order.html index 4684f78..894c862 100644 --- a/markdownblog/markdownblog/templates/blog/order.html +++ b/markdownblog/markdownblog/templates/blog/order.html @@ -4,6 +4,12 @@ Order Topics {% endblock %} {% block includehere %} + {% endblock %} {% block content %} + {% endblock %} \ No newline at end of file diff --git a/markdownblog/markdownblog/templates/blog/tree_view_template.html b/markdownblog/markdownblog/templates/blog/tree_view_template.html new file mode 100644 index 0000000..aebe994 --- /dev/null +++ b/markdownblog/markdownblog/templates/blog/tree_view_template.html @@ -0,0 +1,12 @@ +{% load tree_utils %} +
  • {{ topic.name }} + {% if topic|has_children %} + + {% endif %} +
  • \ No newline at end of file