Sha256: 0db9b76c49bb4b08f7d9f7d9619ff2a7a9c61a0564e75fd85d4cfdba6a408101

Contents?: true

Size: 829 Bytes

Versions: 11

Compression:

Stored size: 829 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Surveys
    # The data store for a Survey in the Decidim::Surveys component.
    class Survey < Surveys::ApplicationRecord
      include Decidim::HasFeature

      feature_manifest_name "surveys"

      has_many :questions, -> { order(:position) }, class_name: "SurveyQuestion", foreign_key: "decidim_survey_id", dependent: :destroy
      has_many :answers, class_name: "SurveyAnswer", foreign_key: "decidim_survey_id", dependent: :destroy

      # Public: returns whether the survey questions can be modified or not.
      def questions_editable?
        answers.empty?
      end

      # Public: returns whether the survey is answered by the user or not.
      def answered_by?(user)
        answers.where(user: user).count == questions.length
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
decidim-surveys-0.10.1 app/models/decidim/surveys/survey.rb
decidim-surveys-0.10.0 app/models/decidim/surveys/survey.rb
decidim-surveys-0.9.3 app/models/decidim/surveys/survey.rb
decidim-surveys-0.9.2 app/models/decidim/surveys/survey.rb
decidim-surveys-0.9.1 app/models/decidim/surveys/survey.rb
decidim-surveys-0.9.0 app/models/decidim/surveys/survey.rb
decidim-surveys-0.8.4 app/models/decidim/surveys/survey.rb
decidim-surveys-0.8.3 app/models/decidim/surveys/survey.rb
decidim-surveys-0.8.2 app/models/decidim/surveys/survey.rb
decidim-surveys-0.8.1 app/models/decidim/surveys/survey.rb
decidim-surveys-0.8.0 app/models/decidim/surveys/survey.rb