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)