From 6d99a24740ca252679d15cf71812d0db15a705fc Mon Sep 17 00:00:00 2001 From: Amaia Castro Date: Wed, 4 Jan 2017 10:13:55 +0100 Subject: [PATCH] Fix draft versions list --- .../legislation/draft_versions_controller.rb | 15 +++++++++------ app/models/legislation/process.rb | 2 +- .../legislation/draft_versions/changes.html.erb | 2 +- .../legislation/draft_versions/show.html.erb | 2 +- .../processes/_phase_allegations.html.erb | 2 +- .../processes/_phase_draft_publication.html.erb | 2 +- spec/features/legislation/draft_versions_spec.rb | 4 ++-- 7 files changed, 16 insertions(+), 13 deletions(-) diff --git a/app/controllers/legislation/draft_versions_controller.rb b/app/controllers/legislation/draft_versions_controller.rb index 705eb16bd..0b6af46a6 100644 --- a/app/controllers/legislation/draft_versions_controller.rb +++ b/app/controllers/legislation/draft_versions_controller.rb @@ -6,15 +6,17 @@ class Legislation::DraftVersionsController < Legislation::BaseController end def show - load_version(params[:id]) + @draft_versions_list = visible_draft_versions + @draft_version = @draft_versions_list.find(params[:id]) end def changes - load_version(params[:draft_version_id]) + @draft_versions_list = visible_draft_versions + @draft_version = @draft_versions_list.find(params[:draft_version_id]) end def go_to_version - version = @process.draft_versions.published.find(params[:draft_version_id]) + version = visible_draft_versions.find(params[:draft_version_id]) if params[:redirect_action] == 'changes' redirect_to legislation_process_draft_version_changes_path(@process, version) @@ -25,11 +27,12 @@ class Legislation::DraftVersionsController < Legislation::BaseController private - def load_version(id_param) + def visible_draft_versions if current_user && current_user.administrator? - @draft_version = @process.draft_versions.find(id_param) + @process.draft_versions else - @draft_version = @process.draft_versions.published.find(id_param) + @process.draft_versions.published end end + end diff --git a/app/models/legislation/process.rb b/app/models/legislation/process.rb index 995aedb9e..566ff075e 100644 --- a/app/models/legislation/process.rb +++ b/app/models/legislation/process.rb @@ -3,7 +3,7 @@ class Legislation::Process < ActiveRecord::Base include ActsAsParanoidAliases has_many :draft_versions, -> { order(:id) }, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_process_id' - has_one :final_draft_version, -> { where final_version: true }, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_process_id' + has_one :final_draft_version, -> { where final_version: true, status: 'published' }, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_process_id' has_many :questions, -> { order(:id) }, class_name: 'Legislation::Question', foreign_key: 'legislation_process_id' validates :title, presence: true diff --git a/app/views/legislation/draft_versions/changes.html.erb b/app/views/legislation/draft_versions/changes.html.erb index 5b46c2282..0f98ad12d 100644 --- a/app/views/legislation/draft_versions/changes.html.erb +++ b/app/views/legislation/draft_versions/changes.html.erb @@ -11,7 +11,7 @@

<%= t('.seeing_changelog_version') %>

<%= form_tag go_to_version_legislation_process_draft_versions_path(@process), method: :get, id: "draft_version_go_to_version" do %> - <%= select_tag "draft_version_id", options_from_collection_for_select(@process.draft_versions.published, 'id', 'title', @draft_version.id), "aria-label": t('legislation.draft_versions.show.select_draft_version') %> + <%= select_tag "draft_version_id", options_from_collection_for_select(@draft_versions_list, 'id', 'title', @draft_version.id), "aria-label": t('legislation.draft_versions.show.select_draft_version') %> <%= hidden_field_tag "redirect_action", "changes" %> <%= submit_tag t('legislation.draft_versions.show.select_version_submit'), class: "button" %> <% end %> diff --git a/app/views/legislation/draft_versions/show.html.erb b/app/views/legislation/draft_versions/show.html.erb index af880c10d..5635e335a 100644 --- a/app/views/legislation/draft_versions/show.html.erb +++ b/app/views/legislation/draft_versions/show.html.erb @@ -11,7 +11,7 @@

<%= t('.seeing_version') %>

<%= form_tag go_to_version_legislation_process_draft_versions_path(@process), method: :get, id: "draft_version_go_to_version" do %> - <%= select_tag "draft_version_id", options_from_collection_for_select(@process.draft_versions.published, 'id', 'title', @draft_version.id), "aria-label": t('.select_draft_version') %> + <%= select_tag "draft_version_id", options_from_collection_for_select(@draft_versions_list, 'id', 'title', @draft_version.id), "aria-label": t('.select_draft_version') %> <%= submit_tag t('.select_version_submit'), class: "button" %> <% end %> <%= link_to t('.see_changes'), legislation_process_draft_version_changes_path(@process, @draft_version) %> diff --git a/app/views/legislation/processes/_phase_allegations.html.erb b/app/views/legislation/processes/_phase_allegations.html.erb index be31ddf43..0087b9ca5 100644 --- a/app/views/legislation/processes/_phase_allegations.html.erb +++ b/app/views/legislation/processes/_phase_allegations.html.erb @@ -1,6 +1,6 @@ <% if process.draft_versions.any? %>
    - <% process.draft_versions.each do |draft_version| %> + <% process.draft_versions.published.each do |draft_version| %>
  • <%= link_to draft_version.title, legislation_process_draft_version_path(process, draft_version) %>
  • <% end %>
diff --git a/app/views/legislation/processes/_phase_draft_publication.html.erb b/app/views/legislation/processes/_phase_draft_publication.html.erb index be31ddf43..0087b9ca5 100644 --- a/app/views/legislation/processes/_phase_draft_publication.html.erb +++ b/app/views/legislation/processes/_phase_draft_publication.html.erb @@ -1,6 +1,6 @@ <% if process.draft_versions.any? %>
    - <% process.draft_versions.each do |draft_version| %> + <% process.draft_versions.published.each do |draft_version| %>
  • <%= link_to draft_version.title, legislation_process_draft_version_path(process, draft_version) %>
  • <% end %>
diff --git a/spec/features/legislation/draft_versions_spec.rb b/spec/features/legislation/draft_versions_spec.rb index 8fef62213..a888a8427 100644 --- a/spec/features/legislation/draft_versions_spec.rb +++ b/spec/features/legislation/draft_versions_spec.rb @@ -37,7 +37,7 @@ feature 'Legislation Draft Versions' do within('select#draft_version_id') do expect(page).to have_content("Version 1") expect(page).to have_content("Version 2") - expect(page).to_not have_content("Version 3") + expect(page).to have_content("Version 3") end end @@ -93,7 +93,7 @@ feature 'Legislation Draft Versions' do within('select#draft_version_id') do expect(page).to have_content("Version 1") expect(page).to have_content("Version 2") - expect(page).to_not have_content("Version 3") + expect(page).to have_content("Version 3") end end