summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/nodes_controller.rb6
-rw-r--r--app/helpers/nodes_helper.rb14
-rw-r--r--app/models/concerns/nested_tree.rb4
3 files changed, 14 insertions, 10 deletions
diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb
index 447d596d..5b919b1f 100644
--- a/app/controllers/nodes_controller.rb
+++ b/app/controllers/nodes_controller.rb
@@ -256,6 +256,12 @@ class NodesController < ApplicationController
256 256
257 def sitemap 257 def sitemap
258 @sitemap = Node.root.self_and_descendants_ordered_with_level 258 @sitemap = Node.root.self_and_descendants_ordered_with_level
259
260 ActiveRecord::Associations::Preloader.new(
261 :records => @sitemap.map(&:first),
262 :associations => [{ :head => :translations }, { :draft => :translations }]
263 ).call
264
259 @sitemap_descendant_counts = descendant_counts_for(@sitemap) 265 @sitemap_descendant_counts = descendant_counts_for(@sitemap)
260 end 266 end
261 267
diff --git a/app/helpers/nodes_helper.rb b/app/helpers/nodes_helper.rb
index 5884c8cd..48f44f8b 100644
--- a/app/helpers/nodes_helper.rb
+++ b/app/helpers/nodes_helper.rb
@@ -1,15 +1,11 @@
1module NodesHelper 1module NodesHelper
2 2
3 def title_for_node node 3 def title_for_node node
4 if node.head 4 return node.head.title if node.head&.title.present?
5 node.head.title 5 return node.draft.title if node.draft&.title.present?
6 else 6
7 if not node.draft or not node.draft.title 7 logger.error "Missing title in node #{node.id}"
8 logger.error "Missing title in node #{node.id}" 8 t("admin.common.no_title")
9 return "NO TITLE"
10 end
11 node.draft.title
12 end
13 end 9 end
14 10
15 def truncated_title_for_node node 11 def truncated_title_for_node node
diff --git a/app/models/concerns/nested_tree.rb b/app/models/concerns/nested_tree.rb
index befcdb38..87a94d23 100644
--- a/app/models/concerns/nested_tree.rb
+++ b/app/models/concerns/nested_tree.rb
@@ -61,7 +61,9 @@ module NestedTree
61 def self_and_descendants_ordered_with_level 61 def self_and_descendants_ordered_with_level
62 nodes = [self] + descendants.to_a 62 nodes = [self] + descendants.to_a
63 children_by_parent = nodes.group_by(&:parent_id) 63 children_by_parent = nodes.group_by(&:parent_id)
64 children_by_parent.each_value { |list| list.sort_by!(&:id) } 64 children_by_parent.each_value do |list|
65 list.sort_by! { |n| [children_by_parent.key?(n.id) ? 0 : 1, n.slug.to_s] }
66 end
65 67
66 result = [] 68 result = []
67 visit = ->(node, level) do 69 visit = ->(node, level) do