Sha256: fa8f6040366f021880130a864400fd977319019a545946ad7d71e2f5a8a505cb

Contents?: true

Size: 1.62 KB

Versions: 46

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

module Decidim
  module Debates
    module Metrics
      class DebatesMetricManage < Decidim::MetricManage
        def metric_name
          "debates"
        end

        def save
          cumulative.each do |key, cumulative_value|
            next if cumulative_value.zero?

            quantity_value = quantity[key] || 0
            category_id, space_type, space_id = key
            record = Decidim::Metric.find_or_initialize_by(day: @day.to_s, metric_type: @metric_name,
                                                           organization: @organization, decidim_category_id: category_id,
                                                           participatory_space_type: space_type, participatory_space_id: space_id)
            record.assign_attributes(cumulative: cumulative_value, quantity: quantity_value)
            record.save!
          end
        end

        private

        def query
          return @query if @query

          @query = Decidim::Debates::Debate.where(component: visible_components_from_spaces(retrieve_participatory_spaces)).joins(:component)
                                           .left_outer_joins(:category)
          @query = @query.where("decidim_debates_debates.start_time <= ?", end_time)
          @query = @query.group("decidim_categorizations.decidim_category_id",
                                :participatory_space_type,
                                :participatory_space_id)
          @query
        end

        def quantity
          @quantity ||= query.where("decidim_debates_debates.start_time >= ?", start_time).count
        end
      end
    end
  end
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
decidim-debates-0.29.2 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.28.5 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.29.1 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.28.4 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.27.9 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.29.0 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.28.3 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.27.8 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.29.0.rc4 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.29.0.rc3 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.29.0.rc2 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.29.0.rc1 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.28.2 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.27.7 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.28.1 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.27.6 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.26.10 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.26.9 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.28.0 app/queries/decidim/debates/metrics/debates_metric_manage.rb
decidim-debates-0.27.5 app/queries/decidim/debates/metrics/debates_metric_manage.rb