Fix draft versions list
This commit is contained in:
@@ -6,15 +6,17 @@ class Legislation::DraftVersionsController < Legislation::BaseController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
load_version(params[:id])
|
@draft_versions_list = visible_draft_versions
|
||||||
|
@draft_version = @draft_versions_list.find(params[:id])
|
||||||
end
|
end
|
||||||
|
|
||||||
def changes
|
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
|
end
|
||||||
|
|
||||||
def go_to_version
|
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'
|
if params[:redirect_action] == 'changes'
|
||||||
redirect_to legislation_process_draft_version_changes_path(@process, version)
|
redirect_to legislation_process_draft_version_changes_path(@process, version)
|
||||||
@@ -25,11 +27,12 @@ class Legislation::DraftVersionsController < Legislation::BaseController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def load_version(id_param)
|
def visible_draft_versions
|
||||||
if current_user && current_user.administrator?
|
if current_user && current_user.administrator?
|
||||||
@draft_version = @process.draft_versions.find(id_param)
|
@process.draft_versions
|
||||||
else
|
else
|
||||||
@draft_version = @process.draft_versions.published.find(id_param)
|
@process.draft_versions.published
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ class Legislation::Process < ActiveRecord::Base
|
|||||||
include ActsAsParanoidAliases
|
include ActsAsParanoidAliases
|
||||||
|
|
||||||
has_many :draft_versions, -> { order(:id) }, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_process_id'
|
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'
|
has_many :questions, -> { order(:id) }, class_name: 'Legislation::Question', foreign_key: 'legislation_process_id'
|
||||||
|
|
||||||
validates :title, presence: true
|
validates :title, presence: true
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<h3><%= t('.seeing_changelog_version') %></h3>
|
<h3><%= t('.seeing_changelog_version') %></h3>
|
||||||
<div class="select-box">
|
<div class="select-box">
|
||||||
<%= form_tag go_to_version_legislation_process_draft_versions_path(@process), method: :get, id: "draft_version_go_to_version" do %>
|
<%= 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" %>
|
<%= hidden_field_tag "redirect_action", "changes" %>
|
||||||
<%= submit_tag t('legislation.draft_versions.show.select_version_submit'), class: "button" %>
|
<%= submit_tag t('legislation.draft_versions.show.select_version_submit'), class: "button" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<h3><%= t('.seeing_version') %></h3>
|
<h3><%= t('.seeing_version') %></h3>
|
||||||
<div class="select-box">
|
<div class="select-box">
|
||||||
<%= form_tag go_to_version_legislation_process_draft_versions_path(@process), method: :get, id: "draft_version_go_to_version" do %>
|
<%= 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" %>
|
<%= submit_tag t('.select_version_submit'), class: "button" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<span><%= link_to t('.see_changes'), legislation_process_draft_version_changes_path(@process, @draft_version) %></span>
|
<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? %>
|
<% if process.draft_versions.any? %>
|
||||||
<ul>
|
<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>
|
<li><%= link_to draft_version.title, legislation_process_draft_version_path(process, draft_version) %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<% if process.draft_versions.any? %>
|
<% if process.draft_versions.any? %>
|
||||||
<ul>
|
<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>
|
<li><%= link_to draft_version.title, legislation_process_draft_version_path(process, draft_version) %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ feature 'Legislation Draft Versions' do
|
|||||||
within('select#draft_version_id') do
|
within('select#draft_version_id') do
|
||||||
expect(page).to have_content("Version 1")
|
expect(page).to have_content("Version 1")
|
||||||
expect(page).to have_content("Version 2")
|
expect(page).to have_content("Version 2")
|
||||||
expect(page).to_not have_content("Version 3")
|
expect(page).to have_content("Version 3")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ feature 'Legislation Draft Versions' do
|
|||||||
within('select#draft_version_id') do
|
within('select#draft_version_id') do
|
||||||
expect(page).to have_content("Version 1")
|
expect(page).to have_content("Version 1")
|
||||||
expect(page).to have_content("Version 2")
|
expect(page).to have_content("Version 2")
|
||||||
expect(page).to_not have_content("Version 3")
|
expect(page).to have_content("Version 3")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user