summaryrefslogtreecommitdiff
path: root/app/models/event.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/event.rb')
-rw-r--r--app/models/event.rb29
1 files changed, 16 insertions, 13 deletions
diff --git a/app/models/event.rb b/app/models/event.rb
index 94a22e3..26c79e4 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -1,22 +1,25 @@
1class Event < ApplicationRecord 1class Event < ApplicationRecord
2 2
3 # Associations 3 belongs_to :node, optional: true
4 4 has_many :occurrences
5 has_many :occurrences 5
6 belongs_to :node 6 validates :title, presence: true, unless: -> { node_id.present? }
7 7 validates :is_primary, uniqueness: { scope: :node_id,
8 # Callbacks 8 message: "only one primary event per node allowed" },
9 9 if: -> { is_primary? && node_id.present? }
10 after_save :generate_occurences 10
11 11 after_save :generate_occurences
12 # Instance Methods 12
13
14 def occurrences_in_range start_time, end_time 13 def occurrences_in_range start_time, end_time
15 self.occurrences.where( 14 self.occurrences.where(
16 "start_time > ? AND end_time < ?", 15 "start_time > ? AND end_time < ?",
17 start_time, end_time 16 start_time, end_time
18 ) 17 )
19 end 18 end
19
20 def display_title
21 title.presence || node&.head&.title || "Untitled event"
22 end
20 23
21 private 24 private
22 def generate_occurences 25 def generate_occurences