diff --git a/pillar/web/nodes/custom/posts.py b/pillar/web/nodes/custom/posts.py
index 586671a1..44025b8c 100644
--- a/pillar/web/nodes/custom/posts.py
+++ b/pillar/web/nodes/custom/posts.py
@@ -61,16 +61,10 @@ def posts_view(project_id=None, project_url=None, url=None, *, archive=False, pa
post.picture = get_file(post.picture, api=api)
post.url = url_for_node(node=post)
- # Use the *_main_project.html template for the main blog
- is_main_project = project_id == current_app.config['MAIN_PROJECT_ID']
- main_project_template = '_main_project' if is_main_project else ''
- main_project_template = '_main_project'
index_arch = 'archive' if archive else 'index'
- template_path = f'nodes/custom/blog/{index_arch}{main_project_template}.html',
+ template_path = f'nodes/custom/blog/{index_arch}.html',
if url:
- template_path = f'nodes/custom/post/view{main_project_template}.html',
-
post = Node.find_one({
'where': {'parent': blog._id, 'properties.url': url},
'embedded': {'node_type': 1, 'user': 1},
@@ -95,6 +89,7 @@ def posts_view(project_id=None, project_url=None, url=None, *, archive=False, pa
can_create_blog_posts = project.node_type_has_method('post', 'POST', api=api)
# Use functools.partial so we can later pass page=X.
+ is_main_project = project_id == current_app.config['MAIN_PROJECT_ID']
if is_main_project:
url_func = functools.partial(url_for, 'main.main_blog_archive')
else:
@@ -121,7 +116,7 @@ def posts_view(project_id=None, project_url=None, url=None, *, archive=False, pa
return render_template(
template_path,
blog=blog,
- node=post,
+ node=post, # node is used by the generic comments rendering (see custom/_scripts.pug)
posts=posts._items,
posts_meta=pmeta,
more_posts_available=pmeta['total'] > pmeta['max_results'],
diff --git a/src/templates/nodes/custom/blog/archive_main_project.pug b/src/templates/nodes/custom/blog/archive_main_project.pug
deleted file mode 100644
index bdbb6805..00000000
--- a/src/templates/nodes/custom/blog/archive_main_project.pug
+++ /dev/null
@@ -1,9 +0,0 @@
-| {% extends 'nodes/custom/blog/index_main_project.html' %}
-| {% import 'nodes/custom/blog/_macros.html' as blogmacros %}
-
-| {% block body %}
-.container
- h3 Blog Archive
-
- | {{ blogmacros.render_archive(project, posts, posts_meta) }}
-| {% endblock body %}
diff --git a/src/templates/nodes/custom/blog/index.pug b/src/templates/nodes/custom/blog/index.pug
index 6599f11c..c38a7617 100644
--- a/src/templates/nodes/custom/blog/index.pug
+++ b/src/templates/nodes/custom/blog/index.pug
@@ -1,50 +1,44 @@
-| {% extends 'projects/view.html' %}
+| {% extends 'layout.html' %}
| {% import 'nodes/custom/blog/_macros.html' as blogmacros %}
+| {% from 'projects/_macros.html' import render_secondary_navigation %}
+
| {% set title = 'blog' %}
+
| {% block page_title %}Blog{% endblock%}
-| {% block project_context %}
-| {{ blogmacros.render_blog_index(project, posts, can_create_blog_posts, api, more_posts_available, posts_meta) }}
-| {% endblock %}
+| {% block navigation_tabs %}
+| {{ render_secondary_navigation(project, navigation_links, title) }}
+| {% endblock navigation_tabs %}
-| {% block project_tree %}
-#project_tree.jstree.jstree-default.blog
- ul.jstree-container-ul.jstree-children
- li.jstree-node(data-node-type="page")
- a.jstree-anchor(
- href="{{ url_for('projects.view', project_url=project.url) }}")
- | Browse Project
-
- li.jstree-node(data-node-type="page")
- a.jstree-anchor.jstree-clicked(
- href="{{ url_for('main.project_blog', project_url=project.url) }}") Blog
-
- | {% for post in posts %}
- li.jstree-node
- a.jstree-anchor.tree-item.post(
- href="{{ node.url }}")
- .tree-item-thumbnail
- | {% if post.picture %}
- img(src="{{ post.picture.thumbnail('s', api=api) }}")
- | {% else %}
- i.pi-document-text
- | {% endif %}
- span.tree-item-title {{ post.name }}
- span.tree-item-info {{ post._created | pretty_date }}
- | {% endfor %}
+| {% block body %}
+| {% if node %}
+| {{ blogmacros.render_blog_post(node, project=project) }}
+| {% else %}
+| {{ blogmacros.render_blog_index(project, posts, can_create_blog_posts, api, more_posts_available, posts_meta, pages=pages) }}
+| {% endif %}
| {% endblock %}
| {% block footer_scripts %}
+
include ../_scripts
script.
- /* UI Stuff */
- var project_container = document.getElementById('project-container');
+ hopToTop(); // Display jump to top button
- $(window).on("load resize",function(){
- containerResizeY($(window).height());
+ /* Expand images when their link points to a jpg/png/gif */
+ /* TODO: De-duplicate code from view post */
+ var page_overlay = document.getElementById('page-overlay');
+ $('.item-content a img').on('click', function(e){
+ e.preventDefault();
- if ($(window).width() > 480) {
- project_container.style.height = (window.innerHeight - project_container.offsetTop) + "px";
+ var href = $(this).parent().attr('href');
+ var src = $(this).attr('src');
+
+ if (href.match("jpg$") || href.match("png$") || href.match("gif$")) {
+ $(page_overlay)
+ .addClass('active')
+ .html('
');
+ } else {
+ window.location.href = href;
}
});
diff --git a/src/templates/nodes/custom/blog/index_main_project.pug b/src/templates/nodes/custom/blog/index_main_project.pug
deleted file mode 100644
index 5a9a46b5..00000000
--- a/src/templates/nodes/custom/blog/index_main_project.pug
+++ /dev/null
@@ -1,35 +0,0 @@
-| {% extends 'layout.html' %}
-| {% import 'nodes/custom/blog/_macros.html' as blogmacros %}
-| {% set title = 'blog' %}
-
-| {% block page_title %}Blog{% endblock%}
-
-| {% block body %}
-| {{ blogmacros.render_blog_index(project, posts, can_create_blog_posts, api, more_posts_available, posts_meta, pages=pages) }}
-| {% endblock %}
-
-| {% block footer_scripts %}
-
-include ../_scripts
-script.
- hopToTop(); // Display jump to top button
-
- /* Expand images when their link points to a jpg/png/gif */
- /* TODO: De-duplicate code from view post */
- var page_overlay = document.getElementById('page-overlay');
- $('.item-content a img').on('click', function(e){
- e.preventDefault();
-
- var href = $(this).parent().attr('href');
- var src = $(this).attr('src');
-
- if (href.match("jpg$") || href.match("png$") || href.match("gif$")) {
- $(page_overlay)
- .addClass('active')
- .html('
');
- } else {
- window.location.href = href;
- }
- });
-
-| {% endblock %}
diff --git a/src/templates/nodes/custom/post/view.pug b/src/templates/nodes/custom/post/view.pug
deleted file mode 100644
index 7b30e905..00000000
--- a/src/templates/nodes/custom/post/view.pug
+++ /dev/null
@@ -1,68 +0,0 @@
-| {% extends 'projects/view.html' %}
-| {% set title = 'blog' %}
-
-| {% block og %}
-meta(property="og:title", content="{{ node.name }}")
-meta(property="og:url", content="{{ url_for('main.project_blog', project_url=project.url, url=node.properties.url, _external=True)}}")
-meta(property="og:type", content="website")
-| {% if node.picture %}
-meta(property="og:image", content="{{ node.picture.thumbnail('l', api=api) }}")
-| {% endif %}
-meta(property="og:description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.")
-
-meta(name="twitter:title", content="{{ node.name }}")
-meta(name="twitter:description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.")
-| {% if node.picture %}
-meta(property="og:image", content="{{ node.picture.thumbnail('l', api=api) }}")
-| {% endif %}
-| {% endblock %}
-
-| {% block page_title %}{{node.name}} - Blog{% endblock%}
-
-| {% block project_context %}
-| {% include 'nodes/custom/post/view_embed.html' %}
-| {% endblock %}
-
-| {% block project_tree %}
-#project_tree.jstree.jstree-default.blog
- ul.jstree-container-ul.jstree-children
- li.jstree-node(data-node-type="page")
- a.jstree-anchor(
- href="{{ url_for('projects.view', project_url=project.url) }}")
- | Browse Project
-
- li.jstree-node(data-node-type="page")
- a.jstree-anchor(
- href="{{ url_for('main.project_blog', project_url=project.url) }}") Blog
-
- | {% for post in posts %}
- li.jstree-node
- a.jstree-anchor.tree-item.post(
- href="{{ url_for_node(node=post) }}",
- class="{% if post._id == node._id %}jstree-clicked{% endif %}")
- .tree-item-thumbnail
- | {% if post.picture %}
- img(src="{{ post.picture.thumbnail('s', api=api) }}")
- | {% else %}
- i.pi-document-text
- | {% endif %}
- span.tree-item-title {{ post.name }}
- span.tree-item-info {{ post._created | pretty_date }}
- | {% endfor %}
-| {% endblock %}
-
-| {% block footer_scripts %}
-script.
- ProjectUtils.setProjectAttributes({projectId: "{{project._id}}", isProject: false, nodeId: '{{node._id}}'});
-
- /* UI Stuff */
- var project_container = document.getElementById('project-container');
- $(window).on("load resize",function(){
- containerResizeY($(window).height());
-
- if ($(window).width() > 480) {
- project_container.style.height = (window.innerHeight - project_container.offsetTop) + "px";
- }
- });
-
-| {% endblock footer_scripts %}
diff --git a/src/templates/nodes/custom/post/view_embed.pug b/src/templates/nodes/custom/post/view_embed.pug
deleted file mode 100644
index d5e1e38f..00000000
--- a/src/templates/nodes/custom/post/view_embed.pug
+++ /dev/null
@@ -1,9 +0,0 @@
-| {% import 'nodes/custom/blog/_macros.html' as blogmacros %}
-
-| {{ blogmacros.render_blog_post(node, project=project) }}
-
-#comments-embed.comments-compact
- .comments-list-loading
- i.pi-spin
-
-include ../_scripts