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 /app/models/occurrence.rb | |
| 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 'app/models/occurrence.rb')
| -rw-r--r-- | app/models/occurrence.rb | 1 |
1 files changed, 1 insertions, 0 deletions
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) |
