refactor view to helper method

This commit is contained in:
Stefan Tollkühn
2025-08-06 20:39:21 +02:00
parent 78b53e58ce
commit 06bea4cf46
2 changed files with 15 additions and 11 deletions

View File

@@ -6,4 +6,15 @@ module SubprojectsHelper
def subproject_view_fields
[:subproject_name, :project, :client, :owner, :builder, :subproject_address]
end
def subproject_form_input(form, attrib, subproject)
case attrib
when :project
form.collection_select :project_id, Project.all, :id, ->(project) { project.name }, prompt: "Select Project"
when :client, :owner, :builder
form.collection_select "#{attrib}_id", Client.all, :id, ->(client) { "#{client.company_name} (#{client.lastname}, #{client.firstname})" }, prompt: "Select #{attrib.to_s.capitalize}"
else
form.text_field attrib, value: subproject.send(attrib)
end
end
end

View File

@@ -12,17 +12,10 @@
<% end %>
<% subproject_form_fields.each do |attrib| %>
<div>
<%= form.label attrib, style: "display: block" %>
<% case attrib %>
<% when :project %>
<%= form.collection_select :project_id, Project.all, :id, -> (project) { "#{project.name}" }, prompt: "Select Project" %>
<% when :client, :owner, :builder %>
<%= form.collection_select "#{attrib}_id", Client.all, :id, -> (client) { "#{client.company_name} (#{client.lastname}, #{client.firstname})" }, prompt: "Select #{attrib.capitalize}" %>
<% else %>
<%= form.text_field attrib, value: subproject.send(attrib) %>
<% end %>
</div>
<div>
<%= form.label attrib, style: "display: block" %>
<%= subproject_form_input(form, attrib, subproject) %>
</div>
<% end %>
<div>