summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-08-20 19:39:39 +0200
committererdgeist <erdgeist@erdgeist.org>2026-08-20 19:39:39 +0200
commita986b1f2b5676624f02373cb54eb3b81b18f3f79 (patch)
tree7ea53301f7c00bcec2b9e0349fb9633e0d9e956a /app/models
parentb689127a29b050b9eefac1381fe150ec0da695a8 (diff)
Add banner render logic
Diffstat (limited to 'app/models')
-rw-r--r--app/models/node.rb11
-rw-r--r--app/models/page.rb17
2 files changed, 19 insertions, 9 deletions
diff --git a/app/models/node.rb b/app/models/node.rb
index ef981a97..8f59de43 100644
--- a/app/models/node.rb
+++ b/app/models/node.rb
@@ -632,6 +632,17 @@ class Node < ApplicationRecord
632 .distinct 632 .distinct
633 end 633 end
634 634
635 def self.current_banners
636 parent = Node.find_by(:unique_name => CccConventions::BANNER_PARENT_NAME)
637 return Node.none unless parent
638
639 parent.children
640 .joins(:head)
641 .where("pages.published_at IS NULL OR pages.published_at <= ?", Time.now)
642 .order("pages.published_at DESC")
643 .includes(:head => { :related_assets => :asset })
644 end
645
635 # This one is for admin-only views, where finding a draft is the point. 646 # This one is for admin-only views, where finding a draft is the point.
636 # Substring match on whichever of head/draft is present. 647 # Substring match on whichever of head/draft is present.
637 def self.editor_search(term) 648 def self.editor_search(term)
diff --git a/app/models/page.rb b/app/models/page.rb
index 91b7e975..679a4aff 100644
--- a/app/models/page.rb
+++ b/app/models/page.rb
@@ -327,17 +327,16 @@ class Page < ApplicationRecord
327 end 327 end
328 end 328 end
329 329
330 def redirect_target 330 def link_target
331 return nil if redirect.blank? 331 if redirect_node_id.present? && redirect_node&.head
332 332 RedirectTarget.new(redirect_node, nil)
333 if redirect_node_id.present? 333 elsif external_url.present?
334 return nil unless redirect_node&.head 334 RedirectTarget.new(nil, external_url)
335 return RedirectTarget.new(redirect_node, nil)
336 end 335 end
336 end
337 337
338 return RedirectTarget.new(nil, external_url) if external_url.present? 338 def redirect_target
339 339 redirect.present? ? link_target : nil
340 nil
341 end 340 end
342 341
343 def redirect_status 342 def redirect_status