18 lines
658 B
18 lines
658 B
module ConditionalQuestionsHelper |
|
def conditional_questions_for_page(page) |
|
page.questions.map(&:conditional_for).compact.map(&:keys).flatten |
|
end |
|
|
|
def find_conditional_question(page, question, answer_value) |
|
return if question.conditional_for.nil? |
|
|
|
conditional_key = question.conditional_for.find { |_, conditional_value| |
|
conditional_value.map(&:to_s).include? answer_value.to_s |
|
}&.first |
|
page.questions.find { |q| q.id == conditional_key } |
|
end |
|
|
|
def display_question_key_div(page, question) |
|
"style='display:none;'".html_safe if conditional_questions_for_page(page).include?(question.id) || question.requires_js |
|
end |
|
end
|
|
|