Class: Decidim::Plans::ComponentPlanTags

Inherits:
Rectify::Query
  • Object
show all
Defined in:
app/queries/decidim/plans/component_plan_tags.rb

Overview

This query class filters all assemblies given an organization.

Instance Method Summary collapse

Constructor Details

#initialize(component) ⇒ ComponentPlanTags

Returns a new instance of ComponentPlanTags.



7
8
9
# File 'app/queries/decidim/plans/component_plan_tags.rb', line 7

def initialize(component)
  @component = component
end

Instance Method Details

#queryObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/queries/decidim/plans/component_plan_tags.rb', line 11

def query
  q = Decidim::Plans::Tag.joins(
    "LEFT JOIN decidim_plans_plan_taggings ON decidim_plans_plan_taggings.decidim_plans_tag_id = decidim_plans_tags.id"
  ).joins(
    "LEFT JOIN decidim_plans_plans ON decidim_plans_plans.id = decidim_plans_plan_taggings.decidim_plan_id"
  ).where(
    decidim_plans_tags: {
      decidim_organization_id: @component.organization.id
    },
    decidim_plans_plans: {
      decidim_component_id: @component.id
    }
  ).having("COUNT(decidim_plans_plan_taggings.id) > 0")
  .group("decidim_plans_tags.id")
  .order(Arel.sql("name ->> '#{current_locale}' ASC"))
end