mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-28 21:07:16 +00:00
Do not delete variant options_text when saving/refreshing products
This commit is contained in:
@@ -315,7 +315,7 @@ productsApp.controller "AdminBulkProductsCtrl", [
|
||||
$scope.productsWithoutDerivedAttributes = (products) ->
|
||||
products_filtered = []
|
||||
if products
|
||||
products_filtered.push angular.extend {}, product for product in products
|
||||
products_filtered = $scope.deepCopyProducts products
|
||||
for product in products_filtered
|
||||
delete product.variant_unit_with_scale
|
||||
if product.variants
|
||||
@@ -326,6 +326,14 @@ productsApp.controller "AdminBulkProductsCtrl", [
|
||||
products_filtered
|
||||
|
||||
|
||||
$scope.deepCopyProducts = (products) ->
|
||||
copied_products = (angular.extend {}, product for product in products)
|
||||
for product in copied_products
|
||||
if product.variants
|
||||
product.variants = (angular.extend {}, variant for variant in product.variants)
|
||||
copied_products
|
||||
|
||||
|
||||
$scope.findProduct = (id) ->
|
||||
products = (product for product in $scope.products when product.id == id)
|
||||
if products.length == 0 then null else products[0]
|
||||
|
||||
@@ -707,9 +707,17 @@ describe "AdminBulkProductsCtrl", ->
|
||||
expect(scope.productsWithoutDerivedAttributes(scope.products)).toEqual([])
|
||||
|
||||
it "does not alter original products", ->
|
||||
scope.products = [{id: 123, variant_unit_with_scale: 'weight_1000'}]
|
||||
scope.productsWithoutDerivedAttributes()
|
||||
expect(scope.products).toEqual [{id: 123, variant_unit_with_scale: 'weight_1000'}]
|
||||
scope.products = [{
|
||||
id: 123
|
||||
variant_unit_with_scale: 'weight_1000'
|
||||
variants: [{options_text: 'foo'}]
|
||||
}]
|
||||
scope.productsWithoutDerivedAttributes(scope.products)
|
||||
expect(scope.products).toEqual [{
|
||||
id: 123
|
||||
variant_unit_with_scale: 'weight_1000'
|
||||
variants: [{options_text: 'foo'}]
|
||||
}]
|
||||
|
||||
describe "updating variants", ->
|
||||
it "returns variants without the unit_value_with_description field", ->
|
||||
@@ -722,6 +730,19 @@ describe "AdminBulkProductsCtrl", ->
|
||||
]
|
||||
|
||||
|
||||
describe "deep copying products", ->
|
||||
it "copies products", ->
|
||||
product = {id: 123}
|
||||
copiedProducts = scope.deepCopyProducts [product]
|
||||
expect(copiedProducts[0]).not.toBe(product)
|
||||
|
||||
it "copies variants", ->
|
||||
variant = {id: 1}
|
||||
product = {id: 123, variants: [variant]}
|
||||
copiedProducts = scope.deepCopyProducts [product]
|
||||
expect(copiedProducts[0].variants[0]).not.toBe(variant)
|
||||
|
||||
|
||||
describe "fetching a product by id", ->
|
||||
it "returns the product when it is present", ->
|
||||
product = {id: 123}
|
||||
|
||||
Reference in New Issue
Block a user