Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ def create
@form = form(Decidim::StratifiedSortitions::Admin::StratifiedSortitionsForm).from_params(params)

Decidim::StratifiedSortitions::Admin::CreateStratifiedSortition.call(@form) do
on(:ok) do
on(:ok) do |created_sortition|
flash[:notice] = I18n.t("stratified_sortitions.create.success", scope: "decidim.stratified_sortitions.admin")
redirect_to stratified_sortitions_path(assembly_slug: -1, component_id: -1)
redirect_to edit_stratified_sortition_path(created_sortition)
end

on(:invalid) do
Expand Down Expand Up @@ -199,7 +199,7 @@ def stratified_sortitions
end

def stratified_sortition
@stratified_sortition ||= collection.find(params[:id])
@stratified_sortition ||= collection.find_by(id: params[:id])
end

def form_presenter
Expand Down
27 changes: 27 additions & 0 deletions app/helpers/decidim/stratified_sortitions/application_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,33 @@ def dynamic_title(title, **options)
end
end

def navigation_menu_items(sortition)
has_sortition = sortition.present?

[
{
path: has_sortition ? edit_stratified_sortition_path(sortition) : new_stratified_sortition_path,
icon: "settings-4-line",
label: t("actions.configure", scope: "decidim.stratified_sortitions.admin"),
active: %w(new edit).include?(action_name),
},
{
path: has_sortition ? upload_sample_stratified_sortition_path(sortition) : "#",
icon: "group-line",
label: t("actions.census_management", scope: "decidim.stratified_sortitions.admin"),
active: action_name == "upload_sample",
disabled: has_sortition ? !sortition.strata_and_substrata_configured? : true,
},
{
path: has_sortition ? execute_stratified_sortition_path(sortition) : "#",
icon: "play-fill",
label: t("actions.execute", scope: "decidim.stratified_sortitions.admin"),
active: action_name == "execute",
disabled: has_sortition ? !sortition.can_execute? : true,
},
]
end

def filter_sections_stratified_sortitions
sections = [{ method: :with_any_state, collection: filter_state_values, label_scope: "decidim.stratified_sortitions.stratified_sortitions.filters", id: "state" }]
sections.reject { |item| item[:collection].blank? }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
<div class="flex items-left stratified_sortition_nav">
<%= button_to edit_stratified_sortition_path(stratified_sortition),
method: :get,
class: "import-sample-btn #{'active' if action_name == 'edit'}" do %>
<%= icon "settings-4-line" %> <%= t("actions.configure", scope: "decidim.stratified_sortitions.admin") %>
<% end %>
<%= button_to upload_sample_stratified_sortition_path(stratified_sortition),
method: :get,
class: "import-sample-btn #{'active' if action_name == 'upload_sample'}",
disabled: !stratified_sortition.strata_and_substrata_configured? do %>
<%= icon "group-line" %> <%= t("actions.census_management", scope: "decidim.stratified_sortitions.admin") %>
<% end %>
<%= button_to execute_stratified_sortition_path(stratified_sortition),
method: :get,
class: "import-sample-btn #{'active' if action_name == 'execute'}",
disabled: !stratified_sortition.can_execute? do %>
<%= icon "play-fill" %> <%= t("actions.execute", scope: "decidim.stratified_sortitions.admin") %>
<% navigation_menu_items(stratified_sortition).each do |item| %>
<%= button_to item[:path],
method: :get,
class: "import-sample-btn #{'active' if item[:active]}",
disabled: item[:disabled] do %>
<%= icon item[:icon] %> <%= item[:label] %>
<% end %>
<% end %>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<%= t(".title") %>
</h1>
</div>

<%= render 'navigation_menu' %>

<div class="item__edit item__edit-1col">
<div class="item__edit-form">
<%= decidim_form_for(@form, html: { class: "form-defaults form new_stratified_sortition stratified_sortition_form_admin" }) do |f| %>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,10 @@ module Admin
end

context "with valid params" do
it "redirects to the stratified sortitions list" do
it "redirects to the newly created stratified sortition edit page" do
post(:create, params:)
expect(response).to redirect_to(stratified_sortitions_path(assembly_slug: -1, component_id: -1))
created_sortition = StratifiedSortition.last
expect(response).to redirect_to(edit_stratified_sortition_path(created_sortition))
end

it "creates a stratified sortition associated with the current component" do
Expand Down
Loading