From af2c6fd85e13139be3e3b2329a51c3a35acb3c40 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Wed, 5 Aug 2026 23:56:56 +0200 Subject: Search assets and events, and order events by when they happen --- app/models/event.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'app/models/event.rb') diff --git a/app/models/event.rb b/app/models/event.rb index 792ab448..e7823617 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -54,6 +54,24 @@ class Event < ApplicationRecord destroyed end + def self.editor_search(term) + words = term.to_s.split(/\s+/).reject(&:blank?) + return none if words.empty? + + words.inject(all) do |scope, word| + like = "%#{sanitize_sql_like(word)}%" + tagged = ActsAsTaggableOn::Tagging + .where(:taggable_type => base_class.name) + .joins(:tag).where("tags.name ILIKE ?", like) + .select(:taggable_id) + scope.where( + "events.title ILIKE :t OR events.description ILIKE :t OR " \ + "events.location ILIKE :t OR events.url ILIKE :t OR " \ + "events.id IN (:tagged)", :t => like, :tagged => tagged + ) + end + end + private def generate_occurrences Occurrence.generate self -- cgit v1.3