diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-03 02:00:53 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-03 02:00:53 +0200 |
| commit | bff34fb568f7a83c03e2e51b458a1e44b67b794e (patch) | |
| tree | 00d0dd9de6f3df600a727b8d745dbd202c0292ae /db | |
| parent | 4ffa03a809f19b3676e08e452475c0bc586a5ea9 (diff) | |
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.
Diffstat (limited to 'db')
| -rw-r--r-- | db/seeds/chapters.rb | 4 |
1 files changed, 2 insertions, 2 deletions
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 |
