Fix draft versions list
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<h3><%= t('.seeing_changelog_version') %></h3>
|
||||
<div class="select-box">
|
||||
<%= 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 %>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<h3><%= t('.seeing_version') %></h3>
|
||||
<div class="select-box">
|
||||
<%= 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 %>
|
||||
<span><%= link_to t('.see_changes'), legislation_process_draft_version_changes_path(@process, @draft_version) %></span>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% if process.draft_versions.any? %>
|
||||
<ul>
|
||||
<% process.draft_versions.each do |draft_version| %>
|
||||
<% process.draft_versions.published.each do |draft_version| %>
|
||||
<li><%= link_to draft_version.title, legislation_process_draft_version_path(process, draft_version) %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% if process.draft_versions.any? %>
|
||||
<ul>
|
||||
<% process.draft_versions.each do |draft_version| %>
|
||||
<% process.draft_versions.published.each do |draft_version| %>
|
||||
<li><%= link_to draft_version.title, legislation_process_draft_version_path(process, draft_version) %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user