diff --git a/app/components/admin/budgets_wizard/base_component.rb b/app/components/admin/budgets_wizard/base_component.rb index 3d96f6a07..b2aba71cd 100644 --- a/app/components/admin/budgets_wizard/base_component.rb +++ b/app/components/admin/budgets_wizard/base_component.rb @@ -1,3 +1,7 @@ class Admin::BudgetsWizard::BaseComponent < ApplicationComponent delegate :single_heading?, :url_params, to: :helpers + + def budget_mode + helpers.budget_mode || "multiple" + end end diff --git a/app/components/admin/budgets_wizard/headings/creation_step_component.rb b/app/components/admin/budgets_wizard/headings/creation_step_component.rb index 6c07c6670..cd8e0ada1 100644 --- a/app/components/admin/budgets_wizard/headings/creation_step_component.rb +++ b/app/components/admin/budgets_wizard/headings/creation_step_component.rb @@ -12,7 +12,11 @@ class Admin::BudgetsWizard::Headings::CreationStepComponent < ApplicationCompone end def form_path - admin_budgets_wizard_budget_group_headings_path(heading.group.budget, heading.group) + if heading.persisted? + admin_budgets_wizard_budget_group_heading_path(heading.group.budget, heading.group, heading) + else + admin_budgets_wizard_budget_group_headings_path(heading.group.budget, heading.group) + end end def next_step_path diff --git a/app/components/admin/budgets_wizard/headings/index_component.html.erb b/app/components/admin/budgets_wizard/headings/index_component.html.erb index 631bb2286..b2ce1fd4f 100644 --- a/app/components/admin/budgets_wizard/headings/index_component.html.erb +++ b/app/components/admin/budgets_wizard/headings/index_component.html.erb @@ -5,6 +5,8 @@ <%= render Admin::Budgets::HelpComponent.new("budget_headings") %> <%= render Admin::BudgetsWizard::CreationTimelineComponent.new("headings") %> -<%= render Admin::BudgetsWizard::Headings::GroupSwitcherComponent.new(group) %> -<%= render Admin::BudgetHeadings::HeadingsComponent.new(headings) %> +<% unless single_heading? %> + <%= render Admin::BudgetsWizard::Headings::GroupSwitcherComponent.new(group) %> + <%= render Admin::BudgetHeadings::HeadingsComponent.new(headings) %> +<% end %> <%= render Admin::BudgetsWizard::Headings::CreationStepComponent.new(new_heading) %> diff --git a/app/components/admin/budgets_wizard/phases/index_component.html.erb b/app/components/admin/budgets_wizard/phases/index_component.html.erb index a97812cfb..a613e34d0 100644 --- a/app/components/admin/budgets_wizard/phases/index_component.html.erb +++ b/app/components/admin/budgets_wizard/phases/index_component.html.erb @@ -1,4 +1,4 @@ -<%= back_link_to back_link_path, t("admin.budgets_wizard.phases.back") %> +<%= back_link_to back_link_path, back_link_text %> <%= header %> diff --git a/app/components/admin/budgets_wizard/phases/index_component.rb b/app/components/admin/budgets_wizard/phases/index_component.rb index a1b680003..b0236804f 100644 --- a/app/components/admin/budgets_wizard/phases/index_component.rb +++ b/app/components/admin/budgets_wizard/phases/index_component.rb @@ -1,4 +1,4 @@ -class Admin::BudgetsWizard::Phases::IndexComponent < ApplicationComponent +class Admin::BudgetsWizard::Phases::IndexComponent < Admin::BudgetsWizard::BaseComponent include Header attr_reader :budget @@ -13,6 +13,10 @@ class Admin::BudgetsWizard::Phases::IndexComponent < ApplicationComponent private def back_link_path - admin_budgets_wizard_budget_group_headings_path(budget, budget.groups.first) + admin_budgets_wizard_budget_group_headings_path(budget, budget.groups.first, url_params) + end + + def back_link_text + t("admin.budgets_wizard.phases.#{budget_mode}.back") end end diff --git a/app/controllers/admin/budgets_wizard/headings_controller.rb b/app/controllers/admin/budgets_wizard/headings_controller.rb index 505536ca3..3b4ee532f 100644 --- a/app/controllers/admin/budgets_wizard/headings_controller.rb +++ b/app/controllers/admin/budgets_wizard/headings_controller.rb @@ -4,13 +4,21 @@ class Admin::BudgetsWizard::HeadingsController < Admin::BudgetsWizard::BaseContr before_action :load_headings, only: [:index, :create] def index - @heading = @group.headings.new + if single_heading? + @heading = @group.headings.first_or_initialize + else + @heading = @group.headings.new + end end private def headings_index - admin_budgets_wizard_budget_group_headings_path(@budget, @group) + if single_heading? + admin_budgets_wizard_budget_budget_phases_path(@budget, url_params) + else + admin_budgets_wizard_budget_group_headings_path(@budget, @group, url_params) + end end def new_action diff --git a/app/controllers/admin/budgets_wizard/phases_controller.rb b/app/controllers/admin/budgets_wizard/phases_controller.rb index 5376e93b7..785f092f9 100644 --- a/app/controllers/admin/budgets_wizard/phases_controller.rb +++ b/app/controllers/admin/budgets_wizard/phases_controller.rb @@ -1,4 +1,4 @@ -class Admin::BudgetsWizard::PhasesController < Admin::BaseController +class Admin::BudgetsWizard::PhasesController < Admin::BudgetsWizard::BaseController include Admin::BudgetPhasesActions def index diff --git a/app/views/admin/budget_headings/_form.html.erb b/app/views/admin/budget_headings/_form.html.erb index f1424bb10..ba8110542 100644 --- a/app/views/admin/budget_headings/_form.html.erb +++ b/app/views/admin/budget_headings/_form.html.erb @@ -3,6 +3,8 @@ <%= render "shared/errors", resource: heading %> + <%= render Admin::BudgetsWizard::ModelFieldComponent.new %> + <%= f.translatable_fields do |translations_form| %>