Class: Qe::AnswerSheetsController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- Qe::AnswerSheetsController
- Defined in:
- app/controllers/qe/answer_sheets_controller.rb
Direct Known Subclasses
Instance Method Summary collapse
- #create ⇒ Object
-
#edit ⇒ Object
display answer sheet for data capture (page 1).
-
#index ⇒ Object
list existing answer sheets.
- #send_reference_invite ⇒ Object
-
#show ⇒ Object
display captured answers (read-only).
- #submit ⇒ Object
Methods inherited from ApplicationController
Instance Method Details
#create ⇒ Object
21 22 23 24 25 26 27 |
# File 'app/controllers/qe/answer_sheets_controller.rb', line 21 def create @question_sheet = QuestionSheet.find(params[:question_sheet_id]) @answer_sheet = @question_sheet.answer_sheets.create redirect_to edit_answer_sheet_path(@answer_sheet) end |
#edit ⇒ Object
display answer sheet for data capture (page 1)
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/controllers/qe/answer_sheets_controller.rb', line 30 def edit @presenter = AnswerPagesPresenter.new(self, @answer_sheet, params[:a]) unless @presenter.active_answer_sheet.pages.present? flash[:error] = "Sorry, there are no questions for this form yet." if request.env["HTTP_REFERER"] redirect_to :back else render :text => "", :layout => true end else @elements = @presenter.questions_for_page(:first).elements @page = @presenter.pages.first end end |
#index ⇒ Object
list existing answer sheets
11 12 13 14 15 16 17 18 19 |
# File 'app/controllers/qe/answer_sheets_controller.rb', line 11 def index # TODO dynamically reference this # @answer_sheets = answer_sheet_type.find(:all, :order => 'created_at') @answer_sheets = AnswerSheet.find(:all, :order => 'created_at') # drop down of sheets to capture data for @question_sheets = QuestionSheet.find(:all, :order => 'label').map {|s| [s.label, s.id]} end |
#send_reference_invite ⇒ Object
53 54 55 56 57 58 59 |
# File 'app/controllers/qe/answer_sheets_controller.rb', line 53 def send_reference_invite @reference = @answer_sheet.reference_sheets.find(params[:reference_id]) @reference.update_attributes!(params[:reference][@reference.id.to_s]) if @reference.valid? @reference.send_invite end end |
#show ⇒ Object
display captured answers (read-only)
46 47 48 49 50 51 |
# File 'app/controllers/qe/answer_sheets_controller.rb', line 46 def show @question_sheet = @answer_sheet.question_sheet pf = Qe.table_name_prefix @elements = @question_sheet.pages.collect {|p| p.elements.includes(:pages).order("#{pf}pages.number,#{pf}page_elements.position").all}.flatten @elements = QuestionSet.new(@elements, @answer_sheet).elements.group_by{ |e| e.pages.first } end |
#submit ⇒ Object
61 62 63 64 65 |
# File 'app/controllers/qe/answer_sheets_controller.rb', line 61 def submit return false unless validate_sheet flash[:notice] = "Your form has been submitted. Thanks!" redirect_to root_path end |