class ActionController::Base
Protected Instance Methods
add_answers_to_qwester_answer_store()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 79 def add_answers_to_qwester_answer_store answers = params[:question_id].values.collect do |question_values| question_values[:answer_ids].collect{|id| Qwester::Answer.find(id)} end answers.flatten! remove_answers_to_questions_answered_with(answers) if answers.present? @qwester_answer_store.answers = (@qwester_answer_store.answers | answers) end
add_presentation_to_session(presentation)
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 71 def add_presentation_to_session(presentation) session_presentations = session[:presentations] || [] unless session_presentations.include? presentation session_presentations << presentation session[:presentations] = session_presentations end end
add_questionnaire_to_qwester_answer_store()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 98 def add_questionnaire_to_qwester_answer_store @qwester_answer_store.questionnaires << @questionnaire end
current_questionnaires()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 48 def current_questionnaires match_rule_sets presentation_questionnaires || default_presentation_questionnaires || Qwester::Questionnaire.all end
current_qwester_answer_store()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 25 def current_qwester_answer_store @qwester_answer_store = Qwester::AnswerStore.find_by_session_id(session[Qwester.session_key]) end
default_presentation_questionnaires()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 58 def default_presentation_questionnaires @presentation = Qwester::Presentation.find_by_default(true) @presentation.questionnaires if @presentation end
ensure_complete_all_questionnaires_completed()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 102 def ensure_complete_all_questionnaires_completed if @questionnaire.must_complete? and !@qwester_answer_store.completed_questionnaires.include?(@questionnaire) @questionnaire.errors.add(:base, "All questions must be answered in this questionnaire") end raise ActiveRecord::Rollback unless @questionnaire.errors.empty? end
get_presentation_from_rule_sets()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 63 def get_presentation_from_rule_sets @qwester_rule_sets.clone.each do |rule_set| next unless rule_set.presentation? add_presentation_to_session rule_set.presentation @qwester_rule_sets.delete(rule_set) end end
get_qwester_answer_store(create_new = false)
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 16 def get_qwester_answer_store(create_new = false) if session[Qwester.session_key] current_qwester_answer_store elsif create_new new_qwester_answer_store end end
match_rule_sets()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 39 def match_rule_sets if get_qwester_answer_store @qwester_rule_sets = Qwester::RuleSet.matching(@qwester_answer_store.answers) get_presentation_from_rule_sets return @qwester_rule_sets end end
Also aliased as: matching_rule_sets
new_qwester_answer_store()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 29 def new_qwester_answer_store set_qwester_answer_store Qwester::AnswerStore.create end
params_includes_answers?()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 88 def params_includes_answers? params[:question_id].kind_of?(Hash) and params[:question_id].values.present? end
presentation_questionnaires()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 53 def presentation_questionnaires @presentation = Qwester::Presentation.find_by_name(session[:presentations].last) if session[:presentations] @presentation.questionnaires if @presentation end
remove_answers_to_questions_answered_with(answers)
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 92 def remove_answers_to_questions_answered_with(answers) question_ids = answers.collect(&:question_id).uniq answers_to_delete = @qwester_answer_store.answers.collect {|a| a if question_ids.include? a.question_id.to_i}.compact @qwester_answer_store.answers.delete(answers_to_delete) end
set_qwester_answer_store(answer_store)
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 33 def set_qwester_answer_store(answer_store) @qwester_answer_store = answer_store session[Qwester.session_key] = @qwester_answer_store.session_id @qwester_answer_store end
update_qwester_answer_store()
click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 5 def update_qwester_answer_store if params_includes_answers? get_qwester_answer_store(true) ActiveRecord::Base.transaction do add_answers_to_qwester_answer_store add_questionnaire_to_qwester_answer_store ensure_complete_all_questionnaires_completed end end end