diff --git a/app/controllers/legislation/processes_controller.rb b/app/controllers/legislation/processes_controller.rb index fd301fb07..53addd566 100644 --- a/app/controllers/legislation/processes_controller.rb +++ b/app/controllers/legislation/processes_controller.rb @@ -87,6 +87,10 @@ class Legislation::ProcessesController < Legislation::BaseController end end + def milestones + @phase = :milestones + end + def proposals set_process @phase = :proposals_phase diff --git a/app/models/abilities/everyone.rb b/app/models/abilities/everyone.rb index 18927cc80..ab5a095e0 100644 --- a/app/models/abilities/everyone.rb +++ b/app/models/abilities/everyone.rb @@ -24,7 +24,8 @@ module Abilities can [:read, :print, :json_data], Budget::Investment can [:read_results, :read_executions], Budget, phase: "finished" can :new, DirectMessage - can [:read, :debate, :draft_publication, :allegations, :result_publication, :proposals], Legislation::Process, published: true + can [:read, :debate, :draft_publication, :allegations, :result_publication, + :proposals, :milestones], Legislation::Process, published: true can [:read, :changes, :go_to_version], Legislation::DraftVersion can [:read], Legislation::Question can [:read, :map, :share], Legislation::Proposal diff --git a/app/views/legislation/processes/_key_dates.html.erb b/app/views/legislation/processes/_key_dates.html.erb index 0ada8de08..6fbea5053 100644 --- a/app/views/legislation/processes/_key_dates.html.erb +++ b/app/views/legislation/processes/_key_dates.html.erb @@ -49,6 +49,15 @@ <% end %> <% end %> + + <% if process.milestones.any? %> +
  • "> + <%= link_to milestones_legislation_process_path(process) do %> +

    <%= t("legislation.processes.shared.milestones_date") %>

    +

    <%= format_date(process.milestones.order_by_publication_date.last.publication_date) %>

    + <% end %> +
  • + <% end %> diff --git a/app/views/legislation/processes/milestones.html.erb b/app/views/legislation/processes/milestones.html.erb new file mode 100644 index 000000000..d54d5d54f --- /dev/null +++ b/app/views/legislation/processes/milestones.html.erb @@ -0,0 +1,9 @@ +<% provide(:title) { @process.title } %> + +<%= render "legislation/processes/header", process: @process, header: :full %> + +<%= render "key_dates", process: @process, phase: @phase %> + +
    + <%= render "milestones/milestones_content", milestoneable: @process %> +
    diff --git a/config/locales/en/legislation.yml b/config/locales/en/legislation.yml index bd3ed87c1..ed142fd49 100644 --- a/config/locales/en/legislation.yml +++ b/config/locales/en/legislation.yml @@ -87,6 +87,7 @@ en: draft_publication_date: Draft publication allegations_dates: Comments result_publication_date: Final result publication + milestones_date: Following proposals_dates: Proposals questions: comments: diff --git a/config/locales/es/legislation.yml b/config/locales/es/legislation.yml index 03f4724fd..766089a43 100644 --- a/config/locales/es/legislation.yml +++ b/config/locales/es/legislation.yml @@ -87,6 +87,7 @@ es: draft_publication_date: Publicación borrador allegations_dates: Comentarios result_publication_date: Publicación resultados + milestones_date: Seguimiento proposals_dates: Propuestas questions: comments: diff --git a/config/routes/legislation.rb b/config/routes/legislation.rb index a38dfcac5..d5054e2d4 100644 --- a/config/routes/legislation.rb +++ b/config/routes/legislation.rb @@ -6,6 +6,7 @@ namespace :legislation do get :allegations get :result_publication get :proposals + get :milestones end resources :questions, only: [:show] do diff --git a/spec/features/legislation/processes_spec.rb b/spec/features/legislation/processes_spec.rb index aa0b55f6e..d4a38d63d 100644 --- a/spec/features/legislation/processes_spec.rb +++ b/spec/features/legislation/processes_spec.rb @@ -292,5 +292,40 @@ feature 'Legislation' do include_examples "not published permissions", :legislation_process_proposals_path end + + context "Milestones" do + scenario "Without milestones" do + process = create(:legislation_process, :upcoming_proposals_phase) + + visit legislation_process_path(process) + + within(".legislation-process-list") do + expect(page).not_to have_css "li.milestones" + end + end + + scenario "With milestones" do + process = create(:legislation_process, :upcoming_proposals_phase) + create(:milestone, + milestoneable: process, + description: "Something important happened", + publication_date: Date.new(2018, 3, 22) + ) + + visit legislation_process_path(process) + + within(".legislation-process-list li.milestones") do + click_link "Following 22 Mar 2018" + end + + within(".legislation-process-list .is-active") do + expect(page).to have_link "Following 22 Mar 2018" + end + + within(".tab-milestones") do + expect(page).to have_content "Something important happened" + end + end + end end end