diff --git a/app/controllers/decidim/stratified_sortitions/admin/stratified_sortitions_controller.rb b/app/controllers/decidim/stratified_sortitions/admin/stratified_sortitions_controller.rb index d2320b9..b10f74f 100644 --- a/app/controllers/decidim/stratified_sortitions/admin/stratified_sortitions_controller.rb +++ b/app/controllers/decidim/stratified_sortitions/admin/stratified_sortitions_controller.rb @@ -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 @@ -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 diff --git a/app/helpers/decidim/stratified_sortitions/application_helper.rb b/app/helpers/decidim/stratified_sortitions/application_helper.rb index f191b17..ea89f84 100644 --- a/app/helpers/decidim/stratified_sortitions/application_helper.rb +++ b/app/helpers/decidim/stratified_sortitions/application_helper.rb @@ -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? } diff --git a/app/views/decidim/stratified_sortitions/admin/stratified_sortitions/_navigation_menu.html.erb b/app/views/decidim/stratified_sortitions/admin/stratified_sortitions/_navigation_menu.html.erb index 28e93dc..5ff0a51 100644 --- a/app/views/decidim/stratified_sortitions/admin/stratified_sortitions/_navigation_menu.html.erb +++ b/app/views/decidim/stratified_sortitions/admin/stratified_sortitions/_navigation_menu.html.erb @@ -1,19 +1,10 @@