Class: Decidim::Forms::Questionnaire
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Decidim::Forms::Questionnaire
- Includes:
- Publicable, Templates::Templatable, Traceable, TranslatableResource
- Defined in:
- decidim-forms/app/models/decidim/forms/questionnaire.rb
Overview
The data store for a Questionnaire in the Decidim::Forms component.
Instance Attribute Summary collapse
-
#questionnaire_template_id ⇒ Object
Returns the value of attribute questionnaire_template_id.
Class Method Summary collapse
Instance Method Summary collapse
- #count_participants ⇒ Object
- #pristine? ⇒ Boolean
-
#questions_editable? ⇒ Boolean
Public: returns whether the questionnaire questions can be modified or not.
-
#responded_by?(user) ⇒ Boolean
Public: returns whether the questionnaire is responded by the user or not.
Methods included from Publicable
#previously_published?, #publish!, #published?, #unpublish!
Instance Attribute Details
#questionnaire_template_id ⇒ Object
Returns the value of attribute questionnaire_template_id.
20 21 22 |
# File 'decidim-forms/app/models/decidim/forms/questionnaire.rb', line 20 def questionnaire_template_id @questionnaire_template_id end |
Class Method Details
.log_presenter_class_for(_log) ⇒ Object
38 39 40 |
# File 'decidim-forms/app/models/decidim/forms/questionnaire.rb', line 38 def self.log_presenter_class_for(_log) Decidim::Forms::AdminLog::QuestionnairePresenter end |
Instance Method Details
#count_participants ⇒ Object
42 43 44 |
# File 'decidim-forms/app/models/decidim/forms/questionnaire.rb', line 42 def count_participants Decidim::Forms::QuestionnaireParticipants.new(self).count_participants end |
#pristine? ⇒ Boolean
34 35 36 |
# File 'decidim-forms/app/models/decidim/forms/questionnaire.rb', line 34 def pristine? created_at.to_i == updated_at.to_i && questions.empty? end |
#questions_editable? ⇒ Boolean
Public: returns whether the questionnaire questions can be modified or not.
23 24 25 26 |
# File 'decidim-forms/app/models/decidim/forms/questionnaire.rb', line 23 def questions_editable? has_component = questionnaire_for.respond_to? :component (has_component && !questionnaire_for.component.published?) || responses.empty? end |
#responded_by?(user) ⇒ Boolean
Public: returns whether the questionnaire is responded by the user or not.
29 30 31 32 |
# File 'decidim-forms/app/models/decidim/forms/questionnaire.rb', line 29 def responded_by?(user) query = user.is_a?(String) ? { session_token: user } : { user: } responses.where(query).any? if questions.present? end |