Class: Qe::QuestionSheet

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/qe/question_sheet.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.new_with_pageObject

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

#duplicateObject

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

#elementsObject



43
44
45
# File 'app/models/qe/question_sheet.rb', line 43

def elements
  pages.collect(&:elements).flatten
end

#questionsObject



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