diff --git a/app/controllers/concerns/commentable_actions.rb b/app/controllers/concerns/commentable_actions.rb index 8a224c326..cdd2da4ae 100644 --- a/app/controllers/concerns/commentable_actions.rb +++ b/app/controllers/concerns/commentable_actions.rb @@ -28,7 +28,7 @@ module CommentableActions def new @resource = resource_model.new - prepare_new_resource_documents + prepare_new_resource_documents(@resource) set_geozone set_resource_instance end @@ -113,28 +113,28 @@ module CommentableActions nil end - def prepare_new_resource_documents - if @resource.class == Proposal || @resource.class == Budget::Investment - (1..@resource.class.max_documents_allowed).each do - @resource.documents.build - end + def prepare_new_resource_documents(resource) + return false unless resource.try(:documents) + (1..resource.class.max_documents_allowed).each do + resource.documents.build end end def prepare_edit_resource_documents(resource) - if resource.class == Proposal || resource.class == Budget::Investment - (resource.documents.count + 1 .. resource.class.max_documents_allowed).each do - resource.documents.build - end + return false unless resource.try(:documents) + (resource.documents.size + 1 .. resource.class.max_documents_allowed).each do + resource.documents.build end + resource end def parse_documents(resource) + return false unless resource.try(:documents) resource.documents.each do |document| document.user = current_user end - resource.documents = resource.documents.select{|document| document.valid? }.each do |document| - document.attachment = File.open(document.cached_attachment) + resource.documents = resource.documents.each do |document| + document.attachment = File.open(document.cached_attachment) if document.cached_attachment.present? end end diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index f94f7b1e5..5a40d955b 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -30,6 +30,7 @@ class ProposalsController < ApplicationController if @proposal.save redirect_to share_proposal_path(@proposal), notice: I18n.t('flash.actions.create.proposal') else + @proposal = prepare_edit_resource_documents(@proposal) render :new end end diff --git a/app/views/documents/_nested_form_fields.html.erb b/app/views/documents/_nested_form_fields.html.erb index 10a3f7d11..e5afde8a2 100644 --- a/app/views/documents/_nested_form_fields.html.erb +++ b/app/views/documents/_nested_form_fields.html.erb @@ -20,6 +20,9 @@ <%= document_fields.label :attachment, t("documents.form.attachment_label"), class: 'button hollow' %>
<%= document_attachment_file_name(document) %>
+ <% if document.errors[:attachment].any? %> +