summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/event.rb6
-rw-r--r--app/models/occurrence.rb1
-rw-r--r--db/seeds/chapters.rb4
3 files changed, 6 insertions, 5 deletions
diff --git a/app/models/event.rb b/app/models/event.rb
index e2e71c9..b8651a8 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -2,12 +2,12 @@ class Event < ApplicationRecord
2 include RruleHumanizer 2 include RruleHumanizer
3 3
4 belongs_to :node, optional: true 4 belongs_to :node, optional: true
5 has_many :occurrences 5 has_many :occurrences, dependent: :destroy
6 acts_as_taggable_on :tags 6 acts_as_taggable_on :tags
7 7
8 validates :title, presence: true, unless: -> { node_id.present? } 8 validates :title, presence: true, unless: -> { node_id.present? }
9 9
10 after_save :generate_occurences 10 after_save :generate_occurrences
11 11
12 def occurrences_in_range start_time, end_time 12 def occurrences_in_range start_time, end_time
13 self.occurrences.where( 13 self.occurrences.where(
@@ -21,7 +21,7 @@ class Event < ApplicationRecord
21 end 21 end
22 22
23 private 23 private
24 def generate_occurences 24 def generate_occurrences
25 Occurrence.generate self 25 Occurrence.generate self
26 end 26 end
27end 27end
diff --git a/app/models/occurrence.rb b/app/models/occurrence.rb
index 41ef4cb..c6a2380 100644
--- a/app/models/occurrence.rb
+++ b/app/models/occurrence.rb
@@ -27,6 +27,7 @@ class Occurrence < ApplicationRecord
27 # event are then calculated and created. 27 # event are then calculated and created.
28 def self.generate event 28 def self.generate event
29 self.where(:event_id => event.id).delete_all 29 self.where(:event_id => event.id).delete_all
30 return if event.start_time.nil?
30 31
31 node = event.node 32 node = event.node
32 duration = (event.end_time - event.start_time) 33 duration = (event.end_time - event.start_time)
diff --git a/db/seeds/chapters.rb b/db/seeds/chapters.rb
index 0b83987..ad3c9a0 100644
--- a/db/seeds/chapters.rb
+++ b/db/seeds/chapters.rb
@@ -65,13 +65,13 @@ def seed_chapter(parent_id:, slug:, tag:, title_de:, description_de:,
65 65
66 # Create events 66 # Create events
67 events.each do |ev| 67 events.each do |ev|
68 base_time = Time.parse("#{Date.today.year}-01-01 #{ev[:start_time] || '19:00'}:00") 68 base_time = ev[:start_time] ? Time.parse("#{Date.today.year}-01-01 #{ev[:start_time]}:00") : nil
69 node.events.create!( 69 node.events.create!(
70 title: title_de, 70 title: title_de,
71 location: ev[:location] || location, 71 location: ev[:location] || location,
72 rrule: ev[:rrule], 72 rrule: ev[:rrule],
73 start_time: base_time, 73 start_time: base_time,
74 end_time: base_time + (ev[:duration_hours] || 2).hours, 74 end_time: base_time && base_time + (ev[:duration_hours] || 2).hours,
75 tag_list: ev[:tag_list] || 'open-day' 75 tag_list: ev[:tag_list] || 'open-day'
76 ) 76 )
77 end 77 end