diff --git a/app/views/admin/budget_headings/_form.html.erb b/app/components/admin/budget_headings/form_component.html.erb
similarity index 94%
rename from app/views/admin/budget_headings/_form.html.erb
rename to app/components/admin/budget_headings/form_component.html.erb
index c51d55f18..bcae27da5 100644
--- a/app/views/admin/budget_headings/_form.html.erb
+++ b/app/components/admin/budget_headings/form_component.html.erb
@@ -12,7 +12,7 @@
<% end %>
- <% if @budget.show_money? %>
+ <% if budget.show_money? %>
<%= f.text_field :price, maxlength: 8 %>
<% else %>
<%= f.hidden_field :price, value: 0 %>
@@ -41,7 +41,7 @@
- <% if respond_to?(:single_heading?) && single_heading? %>
+ <% if single_heading? %>
<%= f.submit t("admin.budgets_wizard.headings.continue"), class: "button success" %>
<% else %>
<%= f.submit t("admin.budget_headings.form.#{action}"), class: "button hollow" %>
diff --git a/app/components/admin/budget_headings/form_component.rb b/app/components/admin/budget_headings/form_component.rb
new file mode 100644
index 000000000..96f08a3c0
--- /dev/null
+++ b/app/components/admin/budget_headings/form_component.rb
@@ -0,0 +1,21 @@
+class Admin::BudgetHeadings::FormComponent < ApplicationComponent
+ include TranslatableFormHelper
+ include GlobalizeHelper
+ attr_reader :heading, :path, :action
+
+ def initialize(heading, path:, action:)
+ @heading = heading
+ @path = path
+ @action = action
+ end
+
+ private
+
+ def budget
+ heading.budget
+ end
+
+ def single_heading?
+ helpers.respond_to?(:single_heading?) && helpers.single_heading?
+ end
+end
diff --git a/app/components/admin/budgets_wizard/headings/creation_step_component.html.erb b/app/components/admin/budgets_wizard/headings/creation_step_component.html.erb
index a8ca3d7b4..236eeaf6d 100644
--- a/app/components/admin/budgets_wizard/headings/creation_step_component.html.erb
+++ b/app/components/admin/budgets_wizard/headings/creation_step_component.html.erb
@@ -1,3 +1,3 @@
<%= render Admin::BudgetsWizard::CreationStepComponent.new(heading, next_step_path) do %>
- <%= render "/admin/budget_headings/form", heading: heading, path: form_path, action: "create" %>
+ <%= render Admin::BudgetHeadings::FormComponent.new(heading, path: form_path, action: "create") %>
<% end %>
diff --git a/app/components/admin/budgets_wizard/headings/edit_component.html.erb b/app/components/admin/budgets_wizard/headings/edit_component.html.erb
index 5a269b582..2ee8c913e 100644
--- a/app/components/admin/budgets_wizard/headings/edit_component.html.erb
+++ b/app/components/admin/budgets_wizard/headings/edit_component.html.erb
@@ -4,4 +4,4 @@
<%= render Admin::BudgetsWizard::CreationTimelineComponent.new("headings") %>
-<%= render "/admin/budget_headings/form", heading: heading, path: form_path, action: "submit" %>
+<%= render Admin::BudgetHeadings::FormComponent.new(heading, path: form_path, action: "submit") %>
diff --git a/app/views/admin/budget_headings/edit.html.erb b/app/views/admin/budget_headings/edit.html.erb
index 2102d8e3c..4127240dc 100644
--- a/app/views/admin/budget_headings/edit.html.erb
+++ b/app/views/admin/budget_headings/edit.html.erb
@@ -1,3 +1,7 @@
<%= render "header", action: "edit" %>
-<%= render "form", heading: @heading, path: admin_budget_group_heading_path(@budget, @group, @heading), action: "submit" %>
+<%= render Admin::BudgetHeadings::FormComponent.new(
+ @heading,
+ path: admin_budget_group_heading_path(@budget, @group, @heading),
+ action: "submit"
+) %>
diff --git a/app/views/admin/budget_headings/new.html.erb b/app/views/admin/budget_headings/new.html.erb
index 3e1810fbc..ecce0ba3a 100644
--- a/app/views/admin/budget_headings/new.html.erb
+++ b/app/views/admin/budget_headings/new.html.erb
@@ -1,3 +1,7 @@
<%= render "header", action: "create" %>
-<%= render "form", heading: @heading, path: admin_budget_group_headings_path(@budget, @group), action: "create" %>
+<%= render Admin::BudgetHeadings::FormComponent.new(
+ @heading,
+ path: admin_budget_group_headings_path(@budget, @group),
+ action: "create"
+) %>