Handle unit scale changes

As discussed, this is the desired behaviour. The current screen appears to do this, but fails to save the changes.
This commit is contained in:
David Cook
2024-03-21 17:19:23 +11:00
parent d238fc0cad
commit 1d8ed67b0b
3 changed files with 14 additions and 2 deletions

View File

@@ -19,7 +19,7 @@
= f.hidden_field :unit_description
-# todo: create a method for value_with_description
= f.text_field :unit_value_with_description,
value: [number_with_precision(variant.unit_value, precision: nil,strip_insignificant_zeros: true), variant.unit_description].compact_blank.join(" "),
value: [number_with_precision((variant.unit_value || 1) / (variant.product.variant_unit_scale || 1), precision: nil, strip_insignificant_zeros: true), variant.unit_description].compact_blank.join(" "),
'aria-label': t('admin.products_page.columns.unit_value'), required: true
.field
= f.label :display_as, t('admin.products_page.columns.display_as')

View File

@@ -57,7 +57,7 @@ export default class VariantController extends Controller {
if (match) {
let unit_value = parseFloat(match[1].replace(",", "."));
unit_value = isNaN(unit_value) ? null : unit_value;
unit_value *= this.variantUnitScale.value ? this.variantUnitScale.value : 1;
unit_value *= this.variantUnitScale.value ? this.variantUnitScale.value : 1; // Normalise to default scale
this.unitValue.value = unit_value;
this.unitDescription.value = match[3];

View File

@@ -270,6 +270,18 @@ describe 'As an admin, I can manage products', feature: :admin_style_v3 do
# New scale is visible immediately
expect(page).to have_button "Unit", text: "1kg"
end
click_button "Save changes"
expect(page).to have_content "Changes saved"
product_a.reload
expect(product_a.variant_unit).to eq "weight"
expect(product_a.variant_unit_scale).to eq 1000 # kg
expect(variant_a1.reload.unit_value).to eq 1000 # 1kg
within row_containing_name("Medium box") do
expect(page).to have_button "Unit", text: "1kg"
end
end
it "saves a custom item unit name" do