From bff34fb568f7a83c03e2e51b458a1e44b67b794e Mon Sep 17 00:00:00 2001 From: erdgeist Date: Fri, 3 Jul 2026 02:00:53 +0200 Subject: ascade-destroy occurrences; support events without a fixed start time - Event#occurrences is now dependent: :destroy, so destroying an Event (directly, or via Node's cascade) removes its Occurrence rows instead of orphaning them. - Renamed generate_occurences -> generate_occurrences (typo fix); callback and method updated together. - Occurrence.generate returns early when event.start_time is nil, so a chapter with no sourced time produces zero occurrences instead of a guessed one. - seed_chapter no longer falls back to 19:00 when start_time is absent; base_time/end_time are nil in that case. Database-level foreign key cascade on occurrences.event_id is still pending. --- db/seeds/chapters.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'db') 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:, # Create events events.each do |ev| - base_time = Time.parse("#{Date.today.year}-01-01 #{ev[:start_time] || '19:00'}:00") + base_time = ev[:start_time] ? Time.parse("#{Date.today.year}-01-01 #{ev[:start_time]}:00") : nil node.events.create!( title: title_de, location: ev[:location] || location, rrule: ev[:rrule], start_time: base_time, - end_time: base_time + (ev[:duration_hours] || 2).hours, + end_time: base_time && base_time + (ev[:duration_hours] || 2).hours, tag_list: ev[:tag_list] || 'open-day' ) end -- cgit v1.3