Class: Decidim::Forms::Question
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Decidim::Forms::Question
- Includes:
- TranslatableResource
- Defined in:
- decidim-forms/app/models/decidim/forms/question.rb
Overview
The data store for a Question in the Decidim::Forms component.
Constant Summary collapse
- QUESTION_TYPES =
%w(short_response long_response single_option multiple_option sorting files matrix_single matrix_multiple).freeze
- SEPARATOR_TYPE =
"separator"
- TITLE_AND_DESCRIPTION_TYPE =
"title_and_description"
- TYPES =
(QUESTION_TYPES + [SEPARATOR_TYPE, TITLE_AND_DESCRIPTION_TYPE]).freeze
Class Method Summary collapse
Instance Method Summary collapse
- #has_attachments? ⇒ Boolean
- #mandatory_body? ⇒ Boolean
- #mandatory_choices? ⇒ Boolean
- #matrix? ⇒ Boolean
- #multiple_choice? ⇒ Boolean
- #number_of_options ⇒ Object
- #responses_count ⇒ Object
- #separator? ⇒ Boolean
- #title_and_description? ⇒ Boolean
- #translated_body ⇒ Object
Class Method Details
.log_presenter_class_for(_log) ⇒ Object
108 109 110 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 108 def self.log_presenter_class_for(_log) Decidim::Forms::AdminLog::QuestionPresenter end |
Instance Method Details
#has_attachments? ⇒ Boolean
100 101 102 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 100 def question_type.to_s == "files" end |
#mandatory_body? ⇒ Boolean
76 77 78 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 76 def mandatory_body? mandatory? && !multiple_choice? && ! end |
#mandatory_choices? ⇒ Boolean
80 81 82 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 80 def mandatory_choices? mandatory? && multiple_choice? && ! end |
#matrix? ⇒ Boolean
68 69 70 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 68 def matrix? %w(matrix_single matrix_multiple).include?(question_type) end |
#multiple_choice? ⇒ Boolean
72 73 74 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 72 def multiple_choice? %w(single_option multiple_option sorting matrix_single matrix_multiple).include?(question_type) end |
#number_of_options ⇒ Object
84 85 86 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 84 def .size end |
#responses_count ⇒ Object
104 105 106 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 104 def responses_count questionnaire.responses.where(question: self).count end |
#separator? ⇒ Boolean
92 93 94 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 92 def separator? question_type.to_s == SEPARATOR_TYPE end |
#title_and_description? ⇒ Boolean
96 97 98 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 96 def title_and_description? question_type.to_s == TITLE_AND_DESCRIPTION_TYPE end |
#translated_body ⇒ Object
88 89 90 |
# File 'decidim-forms/app/models/decidim/forms/question.rb', line 88 def translated_body Decidim::Forms::QuestionPresenter.new(self).translated_body end |