--- a/qmsk_www_pages/pages.py Sun Sep 14 01:37:10 2014 +0300
+++ b/qmsk_www_pages/pages.py Sun Sep 14 01:45:17 2014 +0300
@@ -48,6 +48,16 @@
return path
+ def breadcrumb (self):
+ path = []
+
+ yield '', 'Home'
+
+ for part in self.parts:
+ path.append(part)
+
+ yield '/'.join(path) + '/', part
+
def scan (self):
"""
Scan for files in tree.
@@ -168,23 +178,18 @@
self.tree = tree
self.encoding = encoding
+ def url (self):
+ return self.tree.url(page=self.name)
+
def open (self):
return codecs.open(self.path, encoding=self.encoding)
def breadcrumb (self):
- path = []
-
- yield '', 'Home'
-
- for part in self.tree.parts:
- path.append(part)
-
- yield '/'.join(path) + '/', part
+ for path, name in self.tree.breadcrumb():
+ yield path, name
if self.name != self.tree.INDEX:
- path.append(self.name)
-
- yield '/'.join(path), self.name
+ yield self.url(), self.name
def render (self, request):
raise NotImplementedError()
--- a/qmsk_www_pages/templates/pages/page.html Sun Sep 14 01:37:10 2014 +0300
+++ b/qmsk_www_pages/templates/pages/page.html Sun Sep 14 01:45:17 2014 +0300
@@ -19,9 +19,17 @@
</div>
<div class="row">
<div class="col-sm-2 pages-tree">
+ {% for page, name in tree_breadcrumb %}
+ <ul class="nav">
+ <li><a href="{% url 'page' page %}">{{ name }}</a></li>
+ </ul>
+ <hr />
+ {% endfor %}
<ul class="nav">
{% for page, name in page_list %}
- <li><a href="{% url 'page' page %}">{{ name }}</a></li>
+ <li class="page-tree-item {% if name == page_name %}page-tree-active{% endif %}">
+ <a href="{% url 'page' page %}">{{ name }}</a>
+ </li>
{% endfor %}
</ul>
</div>
--- a/qmsk_www_pages/views.py Sun Sep 14 01:37:10 2014 +0300
+++ b/qmsk_www_pages/views.py Sun Sep 14 01:45:17 2014 +0300
@@ -11,6 +11,7 @@
raise Http404
return render(request, 'pages/page.html', dict(
+ tree_breadcrumb = page.tree.breadcrumb(),
page_name = page.name,
page_breadcrumb = page.breadcrumb(),
page_list = page.tree.list(),