Sha256: 2177908981127a575f10600243c2d00237ad87ff7903adbe04d24fe000df7bdb

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Decidim
  module ProcessGroupsContentBlock
    # This query class filters participatory process groups given an organization and a filter.
    class OrganizationActiveParticipatoryProcessGroups < Decidim::ParticipatoryProcesses::OrganizationPrioritizedParticipatoryProcessGroups
      def query
        ids = super
              .joins(:participatory_processes)
              .where.not(decidim_participatory_processes: { published_at: nil })
              .where(
                "decidim_participatory_processes.end_date IS NULL "\
                "OR decidim_participatory_processes.end_date > ?",
                Time.current
              )
              .group("decidim_participatory_process_groups.id")
              .having("COUNT(decidim_participatory_processes.id) > 0")
              .pluck(:id)

        Decidim::ParticipatoryProcessGroup
          .where(id: ids)
          .order(Arel.sql("name ->> '#{current_locale}' ASC"))
      end

      private

      def current_locale
        I18n.locale.to_s
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-process_groups_content_block-0.19.0 app/queries/decidim/process_groups_content_block/organization_active_participatory_process_groups.rb
decidim-process_groups_content_block-0.18.0 app/queries/decidim/process_groups_content_block/organization_active_participatory_process_groups.rb
decidim-process_groups_content_block-0.17.0 app/queries/decidim/process_groups_content_block/organization_active_participatory_process_groups.rb
decidim-process_groups_content_block-0.16.2 app/queries/decidim/process_groups_content_block/organization_active_participatory_process_groups.rb