Module: Fe::AnswerPagesControllerConcern
- Extended by:
- ActiveSupport::Concern
- Included in:
- AnswerPagesController
- Defined in:
- app/controllers/concerns/fe/answer_pages_controller_concern.rb
Instance Method Summary collapse
- #delete_file ⇒ Object
- #edit ⇒ Object
- #save_file ⇒ Object
- #show ⇒ Object
-
#update ⇒ Object
validate and save captured data for a given page PUT /answer_sheets/1/pages/1.
Instance Method Details
#delete_file ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'app/controllers/concerns/fe/answer_pages_controller_concern.rb', line 91 def delete_file @page = Fe::Page.find(params[:id]) @presenter.active_page = @page question = Fe::Element.find(params[:question_id]) answer = Fe::Answer.where(answer_sheet_id: @answer_sheet.id, question_id: question.id).first question.answers = [answer] if answer @answer = question.delete_file(@answer_sheet, answer) render action: :update end |
#edit ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'app/controllers/concerns/fe/answer_pages_controller_concern.rb', line 21 def edit questions = @presenter.questions_for_page(params[:id]) questions.set_filter(get_filter) @elements = questions.elements @page = Fe::Page.find(params[:id]) || Fe::Page.find_by_number(1) render partial: 'answer_page', locals: { show_first: nil } end |
#save_file ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'app/controllers/concerns/fe/answer_pages_controller_concern.rb', line 69 def save_file params.permit(:Filedata) params.permit(:user_file) # jquery html5 uploader uses user_file; handle both as flash is fallback if params[:Filedata] || params[:user_file] @page = Fe::Page.find(params[:id]) @presenter.active_page = @page question = Fe::Element.find(params[:question_id]) answer = Fe::Answer.where(answer_sheet_id: @answer_sheet.id, question_id: question.id).first question.answers = [answer] if answer @answer = question.save_file(@answer_sheet, params[:Filedata] || params[:user_file].first) render action: :update else respond_to do |format| format.js { head :ok } end end end |
#show ⇒ Object
13 14 15 16 17 18 19 |
# File 'app/controllers/concerns/fe/answer_pages_controller_concern.rb', line 13 def show @presenter = Fe::AnswerPagesPresenter.new(self, @answer_sheet, params[:a], nil, true) questions = @presenter.questions_for_page(params[:id]) questions.set_filter(get_filter) @elements = questions.elements @page = Fe::Page.find(params[:id]) || Fe::Page.find_by_number(1) end |
#update ⇒ Object
validate and save captured data for a given page PUT /answer_sheets/1/pages/1
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/controllers/concerns/fe/answer_pages_controller_concern.rb', line 32 def update @page = Fe::Page.find(params[:id]) questions = @presenter.all_questions_for_page(params[:id]) questions.set_filter(get_filter) questions.post(answer_params, @answer_sheet) questions.save Fe::UpdateReferenceSheetVisibilityJob.perform_later(@answer_sheet, questions.questions.collect(&:id)) @elements = questions.elements # Save references if params[:reference].present? params[:reference].keys.each do |id| reference_params = params.fetch(:reference)[id].permit(:relationship, :title, :first_name, :last_name, :phone, :email, :is_staff) # The call to Application#reference_sheets is supposed to update the visibility cache and return the right references, but # currently it does not do that right. It needs a reload to get the right list of references. I think this may be caused # from a change in rails 5 @answer_sheet = answer_sheet_type.find(params[:answer_sheet_id]) # load a fresh instance of @answer_sheet @answer_sheet.reference_sheets # this call seems to be necessary to build the right refs list ref = @answer_sheet.reference_sheets.find(id) # if the email address has changed, we have to trash the old reference answers ref.attributes = reference_params ref.save(validate: false) end end @presenter.active_page = nil @answer_sheet.update(locale: session[:locale]) respond_to do |format| format.js #format.html end end |