From 223d3f60782ac18f1ed9777883debc211ecaf53d Mon Sep 17 00:00:00 2001
From: Felix Eckhofer <felix@eckhofer.com>
Date: Mon, 23 Dec 2024 02:45:54 +0100
Subject: [PATCH] Only move sessions from relevant stages to canceled

We don't want the "canceled stage" to be filled with talks we've never
even seen before.
---
 app/jobs/pretalx/import_job.rb | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/jobs/pretalx/import_job.rb b/app/jobs/pretalx/import_job.rb
index 58ebf3c..36d817b 100644
--- a/app/jobs/pretalx/import_job.rb
+++ b/app/jobs/pretalx/import_job.rb
@@ -34,12 +34,12 @@ module Pretalx
       end
 
       # We build a list of sessions that exist in the current version of the fahrplan. That way we can move removed sessions to the "Canceled session" fake stage.
-      sessions = []
+      existing_sessions = []
       schedule['schedule']['conference']['days'].each do |day_data|
         day_data['rooms'].each do |stage_name, stage_data|
           stage = stages[stage_name]
           stage_data.each do |session_data|
-            sessions << session_data['guid']
+            existing_sessions << session_data['guid']
             Session.find_or_initialize_by(conference:, ref_id: session_data['guid']).tap do |session|
               session.stage = stage
               session.title = session_data['title']
@@ -64,7 +64,7 @@ module Pretalx
         end
       end
 
-      Session.where(conference:).where.not(ref_id: sessions).each do |canceled|
+      Session.where(conference:).where.not(ref_id: existing_sessions).where(stage: conference.relevant_stages).each do |canceled|
         canceled.stage = canceled_stage
         canceled.save!
       end
-- 
GitLab