Class: Decidim::Accountability::Metrics::ResultsMetricManage

Inherits:
MetricManage
  • Object
show all
Defined in:
decidim-accountability/app/queries/decidim/accountability/metrics/results_metric_manage.rb

Instance Method Summary collapse

Methods inherited from MetricManage

for, #initialize, #valid?

Constructor Details

This class inherits a constructor from Decidim::MetricManage

Instance Method Details

#metric_nameObject


7
8
9
# File 'decidim-accountability/app/queries/decidim/accountability/metrics/results_metric_manage.rb', line 7

def metric_name
  "results"
end

#saveObject


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'decidim-accountability/app/queries/decidim/accountability/metrics/results_metric_manage.rb', line 11

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

    quantity_value = quantity[key] || 0
    category_id, space_type, space_id, related_object_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,
                                                   related_object_type: "Decidim::Component",
                                                   related_object_id: related_object_id)
    record.assign_attributes(cumulative: cumulative_value, quantity: quantity_value)
    record.save!
  end
end