Drop Readout.value decimal type in favor of float

This commit is contained in:
2026-03-19 19:15:47 +01:00
parent 5ed066ad18
commit 687e6fcdff
4 changed files with 46 additions and 6 deletions

View File

@@ -102,13 +102,17 @@ module ApplicationHelper
def number_field(method, options = {})
attr_type = object.type_for_attribute(method)
if attr_type.type == :decimal
case attr_type.type
when :decimal
options[:value] = object.public_send(method)&.to_scientific
options[:step] ||= BigDecimal(10).power(-attr_type.scale)
options[:max] ||= BigDecimal(10).power(attr_type.precision - attr_type.scale) -
options[:step]
options[:min] = options[:min] == :step ? options[:step] : options[:min]
options[:min] ||= -options[:max]
options[:size] ||= attr_type.precision / 2
when :float
options[:size] ||= 6
end
super
end

View File

@@ -11,9 +11,7 @@
<%= readout.quantity.relative_pathname(@superquantity) %>
</td>
<td>
<%= form.number_field :value, required: true,
size: readout.type_for_attribute(:value).precision / 2,
autofocus: readout_counter == 0 %>
<%= form.number_field :value, required: true, autofocus: readout_counter == 0 %>
</td>
<td>
<%= form.hidden_field :quantity_id %>