app/queries/decidim/proposals/metrics/proposals_metric_manage.rb in decidim-proposals-0.21.0 vs app/queries/decidim/proposals/metrics/proposals_metric_manage.rb in decidim-proposals-0.22.0
- old
+ new
@@ -7,37 +7,31 @@
def metric_name
"proposals"
end
def save
- return @registry if @registry
-
- @registry = []
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)
- @registry << record
+ record.save!
end
- @registry.each(&:save!)
- @registry
end
private
def query
return @query if @query
spaces = Decidim.participatory_space_manifests.flat_map do |manifest|
manifest.participatory_spaces.call(@organization)
end
- components = Decidim::Component.where(participatory_space: spaces).published
- @query = Decidim::Proposals::Proposal.where(component: components).joins(:component)
+ @query = Decidim::Proposals::Proposal.where(component: visible_component_ids_from_spaces(spaces)).joins(:component)
.left_outer_joins(:category)
@query = @query.where("decidim_proposals_proposals.published_at <= ?", end_time).except_withdrawn.not_hidden
@query = @query.group("decidim_categorizations.decidim_category_id",
:participatory_space_type,
:participatory_space_id)