mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-30 21:27:17 +00:00
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:
@@ -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')
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user