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