Sha256: 0334f4b71bac33cf594c7321111aea83067aaa3857231750891a5b6f3a3fe03f

Contents?: true

Size: 1.73 KB

Versions: 45

Compression:

Stored size: 1.73 KB

Contents

# frozen_string_literal: true

namespace :decidim_initiatives do
  desc "Check validating initiatives and moves all without changes for a configured time to discarded state"
  task check_validating: :environment do
    Decidim::Initiatives::OutdatedValidatingInitiatives
      .for(Decidim::Initiatives.max_time_in_validating_state)
      .each(&:discarded!)
  end

  desc "Check published initiatives and moves to accepted/rejected state depending on the votes collected when the signing period has finished"
  task check_published: :environment do
    Decidim::Initiatives::SupportPeriodFinishedInitiatives.new.each do |initiative|
      if initiative.supports_goal_reached?
        initiative.accepted!
      else
        initiative.rejected!
      end
    end
  end

  desc "Notify progress on published initiatives"
  task notify_progress: :environment do
    Decidim::Initiative
      .published
      .where.not(first_progress_notification_at: nil)
      .where(second_progress_notification_at: nil).find_each do |initiative|
      if initiative.percentage >= Decidim::Initiatives.second_notification_percentage
        notifier = Decidim::Initiatives::ProgressNotifier.new(initiative: initiative)
        notifier.notify

        initiative.second_progress_notification_at = Time.now.utc
        initiative.save
      end
    end

    Decidim::Initiative
      .published
      .where(first_progress_notification_at: nil).find_each do |initiative|
      if initiative.percentage >= Decidim::Initiatives.first_notification_percentage
        notifier = Decidim::Initiatives::ProgressNotifier.new(initiative: initiative)
        notifier.notify

        initiative.first_progress_notification_at = Time.now.utc
        initiative.save
      end
    end
  end
end

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
decidim-initiatives-0.27.9 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.8 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.7 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.6 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.10 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.9 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.5 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.8 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.4 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.3 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.7 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.5 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.2 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.1 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.4 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.0 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.3 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.0.rc2 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.27.0.rc1 lib/tasks/decidim_initiatives.rake
decidim-initiatives-0.26.2 lib/tasks/decidim_initiatives.rake