From 590344a576fb777be429709925738ffff76ac3f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Checa?= Date: Thu, 5 Oct 2017 15:20:09 +0200 Subject: [PATCH] Added view to upload documents to poll answers --- .../poll/questions/answers_controller.rb | 21 +++++++- .../poll/questions/answers/documents.html.erb | 51 +++++++++++++++++++ config/routes.rb | 4 +- 3 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 app/views/admin/poll/questions/answers/documents.html.erb diff --git a/app/controllers/admin/poll/questions/answers_controller.rb b/app/controllers/admin/poll/questions/answers_controller.rb index 660339844..9223e65d4 100644 --- a/app/controllers/admin/poll/questions/answers_controller.rb +++ b/app/controllers/admin/poll/questions/answers_controller.rb @@ -1,5 +1,6 @@ class Admin::Poll::Questions::AnswersController < Admin::Poll::BaseController before_action :load_question + before_action :load_answer, only: [:update, :documents] load_and_authorize_resource :question, class: "::Poll::Question" @@ -18,10 +19,28 @@ class Admin::Poll::Questions::AnswersController < Admin::Poll::BaseController end end + def update + if @answer.update(answer_params) + redirect_to admin_question_path(@question), notice: t("flash.actions.save_changes.notice") + else + redirect_to :back + end + end + + def documents + @documents = @answer.documents + + render 'admin/poll/questions/answers/documents' + end + private def answer_params - params.require(:poll_question_answer).permit(:title, :description, :question_id) + params.require(:poll_question_answer).permit(:title, :description, :question_id, documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]) + end + + def load_answer + @answer = ::Poll::Question::Answer.find(params[:id] || params[:answer_id]) end def load_question diff --git a/app/views/admin/poll/questions/answers/documents.html.erb b/app/views/admin/poll/questions/answers/documents.html.erb new file mode 100644 index 000000000..17c6f52a3 --- /dev/null +++ b/app/views/admin/poll/questions/answers/documents.html.erb @@ -0,0 +1,51 @@ +

<%= link_to @question.title, admin_question_path(@question) %> > <%= @answer.title %>

+ + +

<%= t("admin.questions.show.answers.documents_list") %>

+ +
+ <%= form_for(@answer, url: admin_question_answer_path(@question, @answer)) do |f| %> + + <%= render 'shared/errors', resource: @answer %> + + <%= f.hidden_field :question_id, value: @question.id %> + +
+
+
+ <%= render 'documents/nested_documents', documentable: @answer, f: f %> +
+ +
+
+ <%= f.submit(class: "button expanded", value: t("shared.save")) %> +
+
+
+
+ <% end %> + + <% if @answer.documents.present? %> + + + + + + + <% @answer.documents.each do |document| %> + + + + + <% end %> +
<%= t("admin.questions.show.answers.document_title") %><%= t("admin.questions.show.answers.description") %>
+ <%= link_to document.title, document.attachment.url %> + + <%= link_to t('documents.buttons.download_document'), + document.attachment.url, + target: "_blank", + rel: "nofollow", + class: 'button hollow' %> +
+ <% end %> +
diff --git a/config/routes.rb b/config/routes.rb index 387983d4b..57f79f115 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -301,10 +301,10 @@ Rails.application.routes.draw do end resources :questions do - resources :answers, only: [:new, :create], controller: 'questions/answers', shallow: true do + resources :answers, only: [:new, :create, :update], controller: 'questions/answers', shallow: true do resources :images, controller: 'questions/answers/images' + get :documents, to: 'questions/answers#documents' end - end end