Class: Decidim::ProcessGroupsContentBlock::OrganizationActiveParticipatoryProcessGroups

Inherits:
Decidim::ParticipatoryProcesses::OrganizationPrioritizedParticipatoryProcessGroups
  • Object
show all
Defined in:
app/queries/decidim/process_groups_content_block/organization_active_participatory_process_groups.rb

Overview

This query class filters participatory process groups given an organization and a filter.

Instance Method Summary collapse

Instance Method Details

#queryObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/queries/decidim/process_groups_content_block/organization_active_participatory_process_groups.rb', line 7

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