From 4dd49b1eebb0a99d3aee66b7eca539c87a9c6332 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Sun, 28 Jun 2026 04:43:28 +0200 Subject: Phase 2: chapter nodes, aggregate partial, fixes - _chapter.html.erb: new partial for erfa/chaostreff aggregated lists; renders title, location, external_url, sanitized body - content_helper: fix aggregate attr regex to allow hyphens in values (erfa-detail tag was silently dropped); add debug logging (remove) - page.rb: suppress libxml stderr noise in rewrite_links_in_body - db/seeds/chapters.rb: one-shot seed script for erfa and chaostreff chapter nodes under parent nodes 548/549; creates bilingual pages, external_url, primary events with RRULEs where known Note: run Node.rebuild!(false) after execution to fix lft/rgt values --- app/helpers/content_helper.rb | 2 +- app/models/page.rb | 8 ++++++++ app/views/custom/partials/_chapter.html.erb | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 app/views/custom/partials/_chapter.html.erb (limited to 'app') diff --git a/app/helpers/content_helper.rb b/app/helpers/content_helper.rb index 21cc579..53bf5b2 100644 --- a/app/helpers/content_helper.rb +++ b/app/helpers/content_helper.rb @@ -80,7 +80,7 @@ module ContentHelper begin if content =~ /\[aggregate([^\]]*)\]/ tag = $~.to_s - matched_data = $1.scan(/\w+\="[a-zA-Z\s\/_\d,.=]*"/) + matched_data = $1.scan(/\w+\="[a-zA-Z\s\/_\d,.=-]*"/) matched_data.each do |data| splitted_data = data.split("=", 2) diff --git a/app/models/page.rb b/app/models/page.rb index e6baf20..385b3f6 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -63,6 +63,14 @@ class Page < ApplicationRecord end end + if options[:order_by] == "title" + return scope + .joins(:translations) + .where(page_translations: { locale: I18n.locale }) + .order("page_translations.title #{options[:order_direction]}") + .paginate(:page => page, :per_page => options[:limit]) + end + scope.order("#{options[:order_by]} #{options[:order_direction]}") .paginate(:page => page, :per_page => options[:limit]) end diff --git a/app/views/custom/partials/_chapter.html.erb b/app/views/custom/partials/_chapter.html.erb new file mode 100644 index 0000000..a5b8662 --- /dev/null +++ b/app/views/custom/partials/_chapter.html.erb @@ -0,0 +1,10 @@ +
+

<%= link_to_path page.title, page.node.unique_name %>

+ <% if page.abstract.present? %> +
<%= page.abstract %>
+ <% end %> + <% if page.node.external_url.present? %> +
<%= link_to page.node.external_url, page.node.external_url, target: '_blank', rel: 'noopener' %>
+ <% end %> +

<%= sanitize page.body %>

+
-- cgit v1.3