Sha256: 6834cbb768f40441c48e8228dff8a1e0132a1891e4db90b02697985ca970e771

Contents?: true

Size: 854 Bytes

Versions: 12

Compression:

Stored size: 854 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Forms
    # A class used to collect user answers for a questionnaire
    class QuestionnaireUserAnswers < Rectify::Query
      # Syntactic sugar to initialize the class and return the queried objects.
      #
      # questionnaire - a Questionnaire object
      def self.for(questionnaire)
        new(questionnaire).query
      end

      # Initializes the class.
      #
      # questionnaire = a Questionnaire object
      def initialize(questionnaire)
        @questionnaire = questionnaire
      end

      # Finds and group answers by user for each questionnaire's question.
      def query
        answers = Answer.where(questionnaire: @questionnaire)
        answers.sort_by { |answer| answer.question.position }.group_by { |a| a.user || a.session_token }.values
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
decidim-forms-0.23.6 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.23.5 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.23.4 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.23.3 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.23.2 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.23.1 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.23.1.rc1 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.23.0 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.22.0 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.21.0 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.20.1 app/queries/decidim/forms/questionnaire_user_answers.rb
decidim-forms-0.20.0 app/queries/decidim/forms/questionnaire_user_answers.rb