49 lines
1.0 KiB
Ruby
49 lines
1.0 KiB
Ruby
|
class SurveyQuestion
|
||
|
|
||
|
Oneline = 0
|
||
|
Multiline = 1
|
||
|
Radio = 2
|
||
|
Check = 3
|
||
|
Select = 4
|
||
|
Radiogroup = 5
|
||
|
|
||
|
include Mongoid::Document
|
||
|
|
||
|
field :title, :localize => true
|
||
|
field :description, :localize => true
|
||
|
field :is_required, :type => Boolean
|
||
|
field :type, :type => Integer
|
||
|
|
||
|
# allow custom answer option
|
||
|
field :custom_option, :type => Boolean
|
||
|
|
||
|
field :sequence, :type => Integer, :default => 0
|
||
|
|
||
|
belongs_to :survey
|
||
|
embeds_many :survey_question_options
|
||
|
embeds_many :survey_question_radiogroups
|
||
|
|
||
|
accepts_nested_attributes_for :survey_question_options, :allow_destroy => true
|
||
|
accepts_nested_attributes_for :survey_question_radiogroups, :allow_destroy => true
|
||
|
|
||
|
default_scope asc(:sequence)
|
||
|
|
||
|
def jumpable?
|
||
|
case type
|
||
|
when SurveyQuestion::Radio, SurveyQuestion::Select
|
||
|
true
|
||
|
else
|
||
|
false
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def can_set_jump?
|
||
|
( !custom_option )
|
||
|
end
|
||
|
|
||
|
def get_jump_tos
|
||
|
Hash[survey_question_options.select{ |o| !o.jump_to.blank? }.collect{ |o| [o.id.to_s, o.jump_to] }]
|
||
|
end
|
||
|
|
||
|
end
|