Sha256: 8a92107ac0ab78dd66681b0f2d0ec7bf89a7a5856286ee1355660427a9eea297

Contents?: true

Size: 1.18 KB

Versions: 73

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Decidim
  module Surveys
    module Metrics
      # Searches for Participants in the following actions
      #  - Answer a survey (Surveys)
      class SurveyParticipantsMetricMeasure < Decidim::MetricMeasure
        def valid?
          super && @resource.is_a?(Decidim::Component)
        end

        def calculate
          surveys = Decidim::Surveys::Survey.joins(:component, :questionnaire).where(component: @resource)
          questionnaires = Decidim::Forms::Questionnaire.includes(:questionnaire_for)
                                                        .where(questionnaire_for_type: Decidim::Surveys::Survey.name, questionnaire_for_id: surveys.pluck(:id))

          answers = Decidim::Forms::Answer.joins(:questionnaire)
                                          .where(questionnaire: questionnaires)
                                          .where("decidim_forms_answers.created_at <= ?", end_time)

          {
            cumulative_users: answers.pluck(:decidim_user_id).uniq,
            quantity_users: answers.where("decidim_forms_answers.created_at >= ?", start_time).pluck(:decidim_user_id).uniq
          }
        end
      end
    end
  end
end

Version data entries

73 entries across 73 versions & 1 rubygems

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