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.rb30
1 files changed, 16 insertions, 14 deletions
diff --git a/app/models/event.rb b/app/models/event.rb
index 94a22e3..b8651a8 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -1,25 +1,27 @@
1class Event < ApplicationRecord 1class Event < ApplicationRecord
2 2 include RruleHumanizer
3 # Associations 3
4 4 belongs_to :node, optional: true
5 has_many :occurrences 5 has_many :occurrences, dependent: :destroy
6 belongs_to :node 6 acts_as_taggable_on :tags
7 7
8 # Callbacks 8 validates :title, presence: true, unless: -> { node_id.present? }
9 9
10 after_save :generate_occurences 10 after_save :generate_occurrences
11 11
12 # Instance Methods
13
14 def occurrences_in_range start_time, end_time 12 def occurrences_in_range start_time, end_time
15 self.occurrences.where( 13 self.occurrences.where(
16 "start_time > ? AND end_time < ?", 14 "start_time > ? AND end_time < ?",
17 start_time, end_time 15 start_time, end_time
18 ) 16 )
19 end 17 end
18
19 def display_title
20 title.presence || node&.head&.title || "Untitled event"
21 end
20 22
21 private 23 private
22 def generate_occurences 24 def generate_occurrences
23 Occurrence.generate self 25 Occurrence.generate self
24 end 26 end
25end 27end