Class: Qe::QuestionSheet
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Qe::QuestionSheet
- Defined in:
- app/models/qe/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
- #questions ⇒ Object
Class Method Details
.new_with_page ⇒ Object
create a new form with a page already attached
24 25 26 27 28 |
# File 'app/models/qe/question_sheet.rb', line 24 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
50 51 52 53 54 55 56 57 58 |
# File 'app/models/qe/question_sheet.rb', line 50 def duplicate new_sheet = QuestionSheet.new(self.attributes) 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
43 44 45 |
# File 'app/models/qe/question_sheet.rb', line 43 def elements pages.collect(&:elements).flatten end |
#questions ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/models/qe/question_sheet.rb', line 30 def questions ret_val = [] pages.each do |p| p.elements.each do |e| ret_val << e if e.is_a?(Question) if e.respond_to?(:questions) ret_val += e.questions end end end ret_val end |