gurix/helena

View on GitHub
app/models/helena/question_group.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Helena
  class QuestionGroup
    include Helena::Concerns::ApplicationModel
    include Mongoid::Orderable

    belongs_to :version

    has_many :questions, inverse_of: :question_group, class_name: 'Helena::Question', dependent: :destroy, autosave: true

    orderable scope: :version

    field :title, type: String
    field :allow_to_go_back, type: Boolean

    def question_codes
      questions.map { |question| [question.code] + question.sub_questions.map(&:code) }.flatten
    end

    def question_texts
      questions.map { |question| [question.code, question.question_text] + subquestion_texts(question) }.flatten
    end

    def subquestion_texts(question)
      question.sub_questions.map { |sub_question| [sub_question.code, sub_question.text] }
    end
  end
end