summaryrefslogtreecommitdiff
path: root/app/models/occurrence.rb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-03 02:00:53 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-03 02:00:53 +0200
commitbff34fb568f7a83c03e2e51b458a1e44b67b794e (patch)
tree00d0dd9de6f3df600a727b8d745dbd202c0292ae /app/models/occurrence.rb
parent4ffa03a809f19b3676e08e452475c0bc586a5ea9 (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.rb1
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)