From 12d915ddb255d346828364f136a4c3443239fad1 Mon Sep 17 00:00:00 2001
From: Teal Bauer <git@teal.is>
Date: Mon, 27 May 2024 21:27:29 +0200
Subject: [PATCH] relevant stages changes

---
 app/controllers/conferences_controller.rb |  2 +-
 app/jobs/telegram_notify_upcoming_job.rb  |  2 +-
 app/models/session.rb                     | 12 +++++++-----
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/app/controllers/conferences_controller.rb b/app/controllers/conferences_controller.rb
index b44d4e0..c254fad 100644
--- a/app/controllers/conferences_controller.rb
+++ b/app/controllers/conferences_controller.rb
@@ -5,7 +5,7 @@ class ConferencesController < ApplicationController
 
   def show
     @conference = Conference.find_by(slug: params[:slug])
-    @sessions = @conference.sessions.where.not(starts_at: nil).includes(:stage, :assignments).where(stage: { name: ["Stage 1", "Stage 2", "Standby"] }).order(:starts_at)
+    @sessions = @conference.sessions.where.not(starts_at: nil).includes(:stage, :assignments).where(stage: @conference.relevant_stages).order(:starts_at)
     if params[:date]
       date = Time.parse(params[:date])
       logger.debug(date)
diff --git a/app/jobs/telegram_notify_upcoming_job.rb b/app/jobs/telegram_notify_upcoming_job.rb
index b2191b0..5869daf 100644
--- a/app/jobs/telegram_notify_upcoming_job.rb
+++ b/app/jobs/telegram_notify_upcoming_job.rb
@@ -4,7 +4,7 @@ class TelegramNotifyUpcomingJob < ApplicationJob
   def perform(args)
     offset = args["offset"]
     interval = args["interval"]
-    Session.scheduled.includes(:stage, :assignments).where(stage: { name: ["Stage 1", "Stage 2", "Standby"] }).where(starts_at: (Time.now + offset)..(Time.now + offset + interval)).order(:starts_at).each do |session|
+    Session.scheduled.includes(:stage, :assignments).where(stage: RelevantStage.joins(:stage).map(&:stage)).where(starts_at: (Time.now + offset)..(Time.now + offset + interval)).order(:starts_at).each do |session|
       puts session.inspect
       assignees = session.assignments.map(&:user)
       if assignees.length.positive?
diff --git a/app/models/session.rb b/app/models/session.rb
index 43137cd..b45ecce 100644
--- a/app/models/session.rb
+++ b/app/models/session.rb
@@ -27,18 +27,20 @@ class Session < ApplicationRecord
     super.in_time_zone(conference.time_zone)
   end
 
-  def is_interpreted
-    # XXX
-    ["Stage 1", "Stage 2"].include? stage.name
+  def is_interpreted?
+    is_relevant?
+  end
+
+  def is_relevant?
+    RelevantStage.exists?(stage:)
   end
 
   def translators_needed?
-    is_interpreted && assignments.length < 2
+    is_interpreted? && assignments.length < 2
   end
 
   def backup_needed?
     return false
-    # is_interpreted && assignments.length < 4
   end
 
   def assignees?
-- 
GitLab