From ca013cf9f1bc337877031a9bbecec7c9266a248b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 26 Apr 2023 18:02:54 +0200 Subject: [PATCH] Move budget headings form partial to a component This way it'll be easier to test it. --- .../budget_headings/form_component.html.erb} | 4 ++-- .../admin/budget_headings/form_component.rb | 21 +++++++++++++++++++ .../headings/creation_step_component.html.erb | 2 +- .../headings/edit_component.html.erb | 2 +- app/views/admin/budget_headings/edit.html.erb | 6 +++++- app/views/admin/budget_headings/new.html.erb | 6 +++++- 6 files changed, 35 insertions(+), 6 deletions(-) rename app/{views/admin/budget_headings/_form.html.erb => components/admin/budget_headings/form_component.html.erb} (94%) create mode 100644 app/components/admin/budget_headings/form_component.rb 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" +) %>