Class: Decidim::Meetings::Question

Inherits:
ApplicationRecord show all
Includes:
TranslatableResource
Defined in:
decidim-meetings/app/models/decidim/meetings/question.rb

Overview

The data store for a Question in the Decidim::Meetings component.

Constant Summary collapse

QUESTION_TYPES =
%w(single_option multiple_option).freeze

Instance Method Summary collapse

Instance Method Details

#answered_by?(user) ⇒ Boolean

Public: returns whether the questionnaire is answered by the user or not.

Returns:

  • (Boolean)


37
38
39
# File 'decidim-meetings/app/models/decidim/meetings/question.rb', line 37

def answered_by?(user)
  questionnaire.answers.where({ user:, question: self }).any? if questionnaire.questions.present? && user.present?
end

#answers_countObject



49
50
51
# File 'decidim-meetings/app/models/decidim/meetings/question.rb', line 49

def answers_count
  questionnaire.answers.where(question: self).count
end

#multiple_choice?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'decidim-meetings/app/models/decidim/meetings/question.rb', line 32

def multiple_choice?
  %w(single_option multiple_option).include?(question_type)
end

#number_of_optionsObject



41
42
43
# File 'decidim-meetings/app/models/decidim/meetings/question.rb', line 41

def number_of_options
  answer_options.size
end

#translated_bodyObject



45
46
47
# File 'decidim-meetings/app/models/decidim/meetings/question.rb', line 45

def translated_body
  Decidim::Forms::QuestionPresenter.new(self).translated_body
end