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 @@
<%= 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