# frozen_string_literal: true module Decidim module ActionDelegator class SumOfMembershipWeight < Decidim::Query def initialize(relation) @relation = relation end def query relation .select( questions[:id].as("question_id"), questions[:title].as("question_title"), responses[:title], votes_count ) .group( questions[:id], questions[:title], responses[:title] ) .order(responses[:title]) end private attr_reader :relation def questions Decidim::Consultations::Question.arel_table end def responses Decidim::Consultations::Response.arel_table end def votes_count field = Ponderation.arel_table[:weight] VotesCountAggregation.new(field, "votes_count").to_sql end end end end