Sha256: ecf8c9087324c65d1703e20fe53e7e71c5c218f20dc4c7f110eaafdbf6769fa0

Contents?: true

Size: 1.37 KB

Versions: 15

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

module Decidim
  module ParticipatoryProcesses
    class ChangeActiveStepJob < ApplicationJob
      queue_as :default

      def perform
        participatory_processes = Decidim::ParticipatoryProcess.published.where("start_date <= ? AND end_date >= ?", Time.zone.now.to_date, Time.zone.now.to_date)

        participatory_processes.each do |process|
          steps = Decidim::ParticipatoryProcessStep.unscoped
                                                   .where(decidim_participatory_process_id: process.id)
                                                   .where("start_date <= ? AND end_date >= ?", Time.zone.now, Time.zone.now).order("end_date ASC", :position)

          active_step = process.steps.find_by(active: true)
          if steps.empty? && active_step
            next_position = active_step.position + 1
            next_step = process.steps.where("start_date <= ?", Time.zone.now.to_date).find_by(position: next_position)
            if next_step.present?
              active_step.update(active: false)
              next_step.update(active: true)
            end
          else
            step_to_activate = steps.first
            if active_step != step_to_activate
              active_step&.update(active: false)
              step_to_activate.update(active: true)
            end
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
decidim-participatory_processes-0.29.2 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.5 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.29.1 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.4 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.29.0 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.3 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.29.0.rc4 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.29.0.rc3 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.29.0.rc2 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.29.0.rc1 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.2 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.1 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.0 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.0.rc5 app/jobs/decidim/participatory_processes/change_active_step_job.rb
decidim-participatory_processes-0.28.0.rc4 app/jobs/decidim/participatory_processes/change_active_step_job.rb