mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-06 02:51:34 +00:00
BOM: Fixed bug causing Order Cycles filter to break in some cases
This commit is contained in:
@@ -157,7 +157,6 @@ orderManagementModule.controller "AdminOrderMgmtCtrl", [
|
||||
$scope.distributorFilter = $scope.distributors[0]
|
||||
dataFetcher("/api/order_cycles/managed").then (data) ->
|
||||
$scope.orderCycles = data
|
||||
$scope.matchOrderCycleEnterprises orderCycle for orderCycle in $scope.orderCycles
|
||||
$scope.orderCycles.unshift blankOption()
|
||||
$scope.orderCycleFilter = $scope.orderCycles[0]
|
||||
$scope.fetchOrders()
|
||||
@@ -194,17 +193,10 @@ orderManagementModule.controller "AdminOrderMgmtCtrl", [
|
||||
lineItemOrder.order_cycle = $scope.matchObject $scope.orderCycles, order.order_cycle, null
|
||||
lineItemOrder
|
||||
|
||||
$scope.matchOrderCycleEnterprises = (orderCycle) ->
|
||||
for i,distributor of orderCycle.distributors
|
||||
orderCycle.distributors[i] = $scope.matchObject $scope.distributors, distributor, null
|
||||
for i,supplier of orderCycle.suppliers
|
||||
orderCycle.suppliers[i] = $scope.matchObject $scope.suppliers, supplier, null
|
||||
|
||||
$scope.matchObject = (list, testObject, noMatch) ->
|
||||
for i, object of list
|
||||
if angular.equals(object, testObject)
|
||||
return object
|
||||
else
|
||||
return noMatch
|
||||
|
||||
$scope.deleteLineItem = (lineItem) ->
|
||||
@@ -288,9 +280,9 @@ orderManagementModule.controller "AdminOrderMgmtCtrl", [
|
||||
orderManagementModule.filter "selectFilter", (blankOption) ->
|
||||
return (lineItems,selectedSupplier,selectedDistributor,selectedOrderCycle) ->
|
||||
filtered = []
|
||||
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedSupplier,blankOption()) || lineItem.supplier == selectedSupplier) &&
|
||||
(angular.equals(selectedDistributor,blankOption()) || lineItem.order.distributor == selectedDistributor) &&
|
||||
(angular.equals(selectedOrderCycle,blankOption()) || lineItem.order.order_cycle == selectedOrderCycle)
|
||||
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedSupplier,blankOption()) || lineItem.supplier.id == selectedSupplier.id) &&
|
||||
(angular.equals(selectedDistributor,blankOption()) || lineItem.order.distributor.id == selectedDistributor.id) &&
|
||||
(angular.equals(selectedOrderCycle,blankOption()) || lineItem.order.order_cycle.id == selectedOrderCycle.id)
|
||||
filtered
|
||||
|
||||
orderManagementModule.filter "variantFilter", ->
|
||||
|
||||
@@ -26,7 +26,6 @@ describe "AdminOrderMgmtCtrl", ->
|
||||
spyOn(returnedSuppliers, "unshift")
|
||||
spyOn(returnedDistributors, "unshift")
|
||||
spyOn(returnedOrderCycles, "unshift")
|
||||
spyOn(scope, "matchOrderCycleEnterprises")
|
||||
scope.initialise "api_key"
|
||||
httpBackend.flush()
|
||||
expect(scope.suppliers).toEqual ["list of suppliers"]
|
||||
@@ -37,7 +36,6 @@ describe "AdminOrderMgmtCtrl", ->
|
||||
expect(returnedSuppliers.unshift.calls.length).toEqual 1
|
||||
expect(returnedDistributors.unshift.calls.length).toEqual 1
|
||||
expect(returnedOrderCycles.unshift.calls.length).toEqual 1
|
||||
expect(scope.matchOrderCycleEnterprises.calls.length).toEqual returnedOrderCycles.length
|
||||
expect(scope.spree_api_key_ok).toEqual true
|
||||
|
||||
describe "fetching orders", ->
|
||||
@@ -161,31 +159,6 @@ describe "AdminOrderMgmtCtrl", ->
|
||||
returned_item = scope.matchObject list, test_item, null
|
||||
expect(returned_item is null).toEqual true
|
||||
|
||||
describe "matching order cycles enterprises", ->
|
||||
it "calls matchDistributor once for each distributor associated with an order cycle", ->
|
||||
spyOn(scope, "matchObject")
|
||||
distributors = [
|
||||
"distributor1"
|
||||
"distributor2"
|
||||
"distributor3"
|
||||
]
|
||||
suppliers = []
|
||||
orderCycle = { distributors: distributors }
|
||||
scope.matchOrderCycleEnterprises orderCycle
|
||||
expect(scope.matchObject.calls.length).toEqual 3
|
||||
|
||||
it "calls matchSupplier once for each distributor associated with an order cycle", ->
|
||||
spyOn(scope, "matchObject")
|
||||
distributors = []
|
||||
suppliers = [
|
||||
"supplier1"
|
||||
"supplier2"
|
||||
"supplier3"
|
||||
]
|
||||
orderCycle = { suppliers: suppliers }
|
||||
scope.matchOrderCycleEnterprises orderCycle
|
||||
expect(scope.matchObject.calls.length).toEqual 3
|
||||
|
||||
describe "deleting a line item", ->
|
||||
order = line_item1 = line_item2 = null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user