diff --git a/app/assets/stylesheets/participation.scss b/app/assets/stylesheets/participation.scss
index b22544315..b7d0510b5 100644
--- a/app/assets/stylesheets/participation.scss
+++ b/app/assets/stylesheets/participation.scss
@@ -336,7 +336,8 @@
.draft-panels,
.debate-questions,
.communities-show,
-.topic-show {
+.topic-show,
+.milestone-content {
p {
word-wrap: break-word;
diff --git a/app/controllers/admin/budget_investment_milestones_controller.rb b/app/controllers/admin/budget_investment_milestones_controller.rb
index 6fc18d084..d648a3193 100644
--- a/app/controllers/admin/budget_investment_milestones_controller.rb
+++ b/app/controllers/admin/budget_investment_milestones_controller.rb
@@ -44,7 +44,8 @@ class Admin::BudgetInvestmentMilestonesController < Admin::BaseController
def milestone_params
params.require(:budget_investment_milestone)
.permit(:title, :description, :publication_date, :budget_investment_id,
- image_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy])
+ image_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]),
+ documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy])
end
def load_budget_investment
diff --git a/app/models/budget/investment/milestone.rb b/app/models/budget/investment/milestone.rb
index 1e3177a23..13724be21 100644
--- a/app/models/budget/investment/milestone.rb
+++ b/app/models/budget/investment/milestone.rb
@@ -2,6 +2,10 @@ class Budget
class Investment
class Milestone < ActiveRecord::Base
include Imageable
+ include Documentable
+ documentable max_documents_allowed: 3,
+ max_file_size: 3.megabytes,
+ accepted_content_types: [ "application/pdf" ]
belongs_to :investment
diff --git a/app/views/admin/budget_investment_milestones/_form.html.erb b/app/views/admin/budget_investment_milestones/_form.html.erb
index 9da2937d3..93cd31f63 100644
--- a/app/views/admin/budget_investment_milestones/_form.html.erb
+++ b/app/views/admin/budget_investment_milestones/_form.html.erb
@@ -8,5 +8,10 @@
<%= render 'images/admin_image', imageable: @milestone, f: f %>
+
+
+ <%= render 'documents/nested_documents', documentable: @milestone, f: f %>
+
+
<%= f.submit nil, class: "button success" %>
<% end %>
diff --git a/app/views/admin/budget_investments/_milestones.html.erb b/app/views/admin/budget_investments/_milestones.html.erb
index 0fc6e890d..6f30f8ad2 100644
--- a/app/views/admin/budget_investments/_milestones.html.erb
+++ b/app/views/admin/budget_investments/_milestones.html.erb
@@ -7,6 +7,7 @@
<%= t("admin.milestones.index.table_description") %> |
<%= t("admin.milestones.index.table_publication_date") %> |
<%= t("admin.milestones.index.image") %> |
+ <%= t("admin.milestones.index.documents") %> |
<%= t("admin.milestones.index.table_actions") %> |
@@ -29,6 +30,16 @@
milestone.image_url(:large),
target: :_blank if milestone.image.present? %>
+
+ <% if milestone.documents.present? %>
+ <% milestone.documents.each do |document| %>
+ <%= link_to document.title,
+ document.attachment.url,
+ target: "_blank",
+ rel: "nofollow" %>
+ <% end %>
+ <% end %>
+ |
<%= link_to t("admin.milestones.index.delete"),
admin_budget_budget_investment_budget_investment_milestone_path(@investment.budget,
diff --git a/app/views/budgets/investments/_milestones.html.erb b/app/views/budgets/investments/_milestones.html.erb
index ae700008d..8065b6142 100644
--- a/app/views/budgets/investments/_milestones.html.erb
+++ b/app/views/budgets/investments/_milestones.html.erb
@@ -20,6 +20,20 @@
<% end %>
<%= image_tag(milestone.image_url(:large), { alt: milestone.image.title, class: "margin", id: "image_#{milestone.id}" }) if milestone.image.present? %>
<%= milestone.description %>
+ <% if milestone.documents.present? %>
+
+
+
+ <%= t('proposals.show.title_external_url') %>
+
+ <% milestone.documents.each do |document| %>
+ <%= link_to document.title,
+ document.attachment.url,
+ target: "_blank",
+ rel: "nofollow" %>
+ <% end %>
+
+ <% end %>
<% end %>
diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml
index c6e14779a..071d9c6a4 100644
--- a/config/locales/en/admin.yml
+++ b/config/locales/en/admin.yml
@@ -199,6 +199,7 @@ en:
no_milestones: "Don't have defined milestones"
image: "Image"
show_image: "Show image"
+ documents: "Documents"
new:
creating: Create milestone
edit:
diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml
index f3f5503f8..688d878e1 100644
--- a/config/locales/es/admin.yml
+++ b/config/locales/es/admin.yml
@@ -199,6 +199,7 @@ es:
no_milestones: "No hay hitos definidos"
image: "Imagen"
show_image: "Ver imagen"
+ documents: "Documentos"
new:
creating: Crear hito
edit:
diff --git a/spec/features/admin/budget_investment_milestones_spec.rb b/spec/features/admin/budget_investment_milestones_spec.rb
index c7dde7371..0b198f6ab 100644
--- a/spec/features/admin/budget_investment_milestones_spec.rb
+++ b/spec/features/admin/budget_investment_milestones_spec.rb
@@ -12,6 +12,8 @@ feature 'Admin budget investment milestones' do
context "Index" do
scenario 'Displaying milestones' do
milestone = create(:budget_investment_milestone, investment: @investment)
+ create(:image, imageable: milestone)
+ document = create(:document, documentable: milestone)
visit admin_budget_budget_investment_path(@investment.budget, @investment)
@@ -19,6 +21,8 @@ feature 'Admin budget investment milestones' do
expect(page).to have_content(milestone.title)
expect(page).to have_content(milestone.id)
expect(page).to have_content(milestone.publication_date.to_date)
+ expect(page).to have_link 'Show image'
+ expect(page).to have_link document.title
end
scenario 'Displaying no_milestones text' do
@@ -63,11 +67,13 @@ feature 'Admin budget investment milestones' do
end
context "Edit" do
- scenario "Change title and description" do
+ scenario "Change title, description and document names" do
milestone = create(:budget_investment_milestone, investment: @investment)
create(:image, imageable: milestone)
+ document = create(:document, documentable: milestone)
visit admin_budget_budget_investment_path(@investment.budget, @investment)
+ expect(page).to have_link document.title
click_link milestone.title
@@ -76,6 +82,7 @@ feature 'Admin budget investment milestones' do
fill_in 'budget_investment_milestone_title', with: 'Changed title'
fill_in 'budget_investment_milestone_description', with: 'Changed description'
fill_in 'budget_investment_milestone_publication_date', with: Time.zone.today.to_date
+ fill_in 'budget_investment_milestone_documents_attributes_0_title', with: 'New document title'
click_button 'Update milestone'
@@ -83,6 +90,7 @@ feature 'Admin budget investment milestones' do
expect(page).to have_content 'Changed description'
expect(page).to have_content Time.zone.today.to_date
expect(page).to have_link 'Show image'
+ expect(page).to have_link 'New document title'
end
end
diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb
index fd0f80b2c..dc0fd4feb 100644
--- a/spec/features/budgets/investments_spec.rb
+++ b/spec/features/budgets/investments_spec.rb
@@ -503,6 +503,7 @@ feature 'Budget Investments' do
investment = create(:budget_investment)
milestone = create(:budget_investment_milestone, investment: investment, title: "New text to show")
image = create(:image, imageable: milestone)
+ document = create(:document, documentable: milestone)
login_as(user)
visit budget_investment_path(budget_id: investment.budget.id, id: investment.id)
@@ -514,6 +515,7 @@ feature 'Budget Investments' do
expect(page).to have_content(milestone.description)
expect(page).to have_content(Time.zone.today.to_date)
expect(page.find("#image_#{milestone.id}")['alt']).to have_content image.title
+ expect(page).to have_link document.title
end
end
|