diff --git a/app/controllers/admin/proposal_milestones_controller.rb b/app/controllers/admin/proposal_milestones_controller.rb
new file mode 100644
index 000000000..3dec8463b
--- /dev/null
+++ b/app/controllers/admin/proposal_milestones_controller.rb
@@ -0,0 +1,8 @@
+class Admin::ProposalMilestonesController < Admin::MilestonesController
+
+ private
+
+ def milestoneable
+ Proposal.find(params[:proposal_id])
+ end
+end
diff --git a/app/views/admin/proposals/show.html.erb b/app/views/admin/proposals/show.html.erb
index 55eaebfef..762c65592 100644
--- a/app/views/admin/proposals/show.html.erb
+++ b/app/views/admin/proposals/show.html.erb
@@ -7,3 +7,5 @@
<%= render "proposals/info", proposal: @proposal %>
+
+<%= render "admin/milestones/milestones", milestoneable: @proposal %>
diff --git a/app/views/proposals/_filter_subnav.html.erb b/app/views/proposals/_filter_subnav.html.erb
index 47709c8aa..642d21535 100644
--- a/app/views/proposals/_filter_subnav.html.erb
+++ b/app/views/proposals/_filter_subnav.html.erb
@@ -21,4 +21,12 @@
<% end %>
+
+ <%= link_to "#tab-milestones" do %>
+
+ <%= t("proposals.show.milestones_tab") %>
+ (<%= @proposal.milestones.count %>)
+
+ <% end %>
+
diff --git a/app/views/proposals/show.html.erb b/app/views/proposals/show.html.erb
index dab5996fb..fe8f97251 100644
--- a/app/views/proposals/show.html.erb
+++ b/app/views/proposals/show.html.erb
@@ -140,4 +140,5 @@
<%= render "proposals/notifications" %>
+ <%= render "milestones/milestones", milestoneable: @proposal %>
diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml
index 25136eecb..20f843999 100644
--- a/config/locales/en/general.yml
+++ b/config/locales/en/general.yml
@@ -437,6 +437,7 @@ en:
flag: This proposal has been flagged as inappropriate by several users.
login_to_comment: You must %{signin} or %{signup} to leave a comment.
notifications_tab: Notifications
+ milestones_tab: Milestones
retired_warning: "The author considers this proposal should not receive more supports."
retired_warning_link_to_explanation: Read the explanation before voting for it.
retired: Proposal retired by the author
diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml
index 8c2212dae..52308497b 100644
--- a/config/locales/es/general.yml
+++ b/config/locales/es/general.yml
@@ -437,6 +437,7 @@ es:
flag: Esta propuesta ha sido marcada como inapropiada por varios usuarios.
login_to_comment: Necesitas %{signin} o %{signup} para comentar.
notifications_tab: Notificaciones
+ milestones_tab: Seguimiento
retired_warning: "El autor de esta propuesta considera que ya no debe seguir recogiendo apoyos."
retired_warning_link_to_explanation: Revisa su explicación antes de apoyarla.
retired: Propuesta retirada por el autor
diff --git a/config/locales/val/general.yml b/config/locales/val/general.yml
index aa35f48d5..bc014d401 100644
--- a/config/locales/val/general.yml
+++ b/config/locales/val/general.yml
@@ -434,6 +434,7 @@ val:
flag: Esta proposta ha sigut marcada com inapropiada per diversos usuaris.
login_to_comment: Necessites %{signin} o %{signup} per a comentar.
notifications_tab: Notificacions
+ milestones_tab: Seguiments
retired_warning: "L'autor d'esta proposta considera que ja no ha de seguir recollint avals."
retired_warning_link_to_explanation: Revisa la seua explicació abans d'avalar-la.
retired: Proposta retirada per l'autor
diff --git a/config/routes/admin.rb b/config/routes/admin.rb
index 660d90e3c..b37714f47 100644
--- a/config/routes/admin.rb
+++ b/config/routes/admin.rb
@@ -29,7 +29,9 @@ namespace :admin do
end
end
- resources :proposals, only: [:index, :show]
+ resources :proposals, only: [:index, :show] do
+ resources :milestones, controller: "proposal_milestones"
+ end
resources :hidden_proposals, only: :index do
member do
diff --git a/spec/features/admin/proposals_spec.rb b/spec/features/admin/proposals_spec.rb
index 04e382348..ddad53d9c 100644
--- a/spec/features/admin/proposals_spec.rb
+++ b/spec/features/admin/proposals_spec.rb
@@ -5,6 +5,10 @@ feature "Admin proposals" do
login_as create(:administrator).user
end
+ it_behaves_like "admin_milestoneable",
+ :proposal,
+ "admin_proposal_path"
+
context "Index" do
scenario "Search" do
create(:proposal, title: "Make Pluto a planet again")
diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb
index eb8b5c0de..8beb35549 100644
--- a/spec/features/proposals_spec.rb
+++ b/spec/features/proposals_spec.rb
@@ -3,6 +3,10 @@ require 'rails_helper'
feature 'Proposals' do
+ it_behaves_like "milestoneable",
+ :proposal,
+ "proposal_path"
+
scenario 'Disabled with a feature flag' do
Setting['feature.proposals'] = nil
expect{ visit proposals_path }.to raise_exception(FeatureFlags::FeatureDisabled)