Sha256: 8b51345c538e8f12e610157f462630d252bddabbc0249046680d3c1d07cc00fc

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

module Decidim
  module Lausanne
    module Budgets
      module Metrics
        # Searches for Participants in the following actions
        #  - Vote a participatory budgeting project (Budgets)
        class BudgetParticipantsMetricMeasure < Decidim::MetricMeasure
          def valid?
            super && @resource.is_a?(Decidim::Component)
          end

          def calculate
            budgets = Decidim::Lausanne::Budgets::LausanneBudget.where(component: @resource)
            orders = Decidim::Lausanne::Budgets::Order.where(budget: budgets)
                                            .finished
                                            .where("decidim_lausanne_budgets_orders.checked_out_at <= ?", end_time)

            {
              cumulative_users: orders.pluck(:loz_user_record_id),
              quantity_users: orders.where("decidim_lausanne_budgets_orders.checked_out_at >= ?", start_time).pluck(:loz_user_record_id)
            }
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
decidim-lausanne-budgets-0.1.0 app/queries/decidim/lausanne/budgets/metrics/budget_participants_metric_measure.rb