Class: Fe::QuestionSheet
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Fe::QuestionSheet
- Defined in:
- app/models/fe/question_sheet.rb
Class Method Summary collapse
-
.new_with_page ⇒ Object
create a new form with a page already attached.
Instance Method Summary collapse
-
#duplicate ⇒ Object
Pages get duplicated Question elements get associated non-question elements get cloned.
- #elements ⇒ Object
-
#hidden_pages(answer_sheet) ⇒ Object
pages hidden by a conditional element.
- #questions ⇒ Object
Class Method Details
.new_with_page ⇒ Object
create a new form with a page already attached
27 28 29 30 31 |
# File 'app/models/fe/question_sheet.rb', line 27 def self.new_with_page question_sheet = self.new(:label => next_label) question_sheet.pages.build(:label => 'Page 1', :number => 1) question_sheet end |
Instance Method Details
#duplicate ⇒ Object
Pages get duplicated Question elements get associated non-question elements get cloned
44 45 46 47 48 49 50 51 52 |
# File 'app/models/fe/question_sheet.rb', line 44 def duplicate new_sheet = QuestionSheet.new(self.attributes.merge(id: nil)) new_sheet.label = self.label + ' - COPY' new_sheet.save(:validate => false) self.pages.each do |page| page.copy_to(new_sheet) end new_sheet end |
#elements ⇒ Object
37 38 39 |
# File 'app/models/fe/question_sheet.rb', line 37 def elements pages.collect(&:elements).flatten end |
#hidden_pages(answer_sheet) ⇒ Object
pages hidden by a conditional element
55 56 57 58 59 |
# File 'app/models/fe/question_sheet.rb', line 55 def hidden_pages(answer_sheet) elements.find_all{ |e| e.conditional.is_a?(Fe::Page) && !e.conditional_match(answer_sheet) }.collect(&:conditional) end |
#questions ⇒ Object
33 34 35 |
# File 'app/models/fe/question_sheet.rb', line 33 def questions pages.collect(&:questions).flatten end |