<%= f.label(:calculator_type, Spree::Calculator.model_name.human) %>
<%= f.select(:calculator_type, @calculators.map { |c| [c.description, c.name] }, {}, {class: 'custom-select fullwidth js-calculator-type'}) %>
<% @calculators.each do |calculator_class| %>
<% calculator = f.object.calculator.class == calculator_class ? f.object.calculator : calculator_class.new %>
<%= f.fields_for :calculator, calculator do |calculator_form| %>
<% calculator.preferences.keys.each do |key| %>
<%= render "spree/admin/shared/preference_fields/#{calculator.preference_type(key)}",
form: calculator_form, attribute: "preferred_#{key}", label: Spree.t(key) %>
<% end %>
<% end %>
<% end %>