Load producers of all or selected order cycles into shop

This commit is contained in:
Maikel Linke
2016-06-29 12:30:43 +10:00
parent e284ad62b2
commit 08fdc8a5bd
7 changed files with 63 additions and 29 deletions

View File

@@ -1,7 +1,7 @@
Darkswarm.filter 'products', (Matcher)->
(products, text)->
Darkswarm.filter 'products', (Matcher) ->
(products, text) ->
products ||= []
text ?= ""
products.filter (product)=>
products.filter (product) =>
propertiesToMatch = [product.name, product.supplier.name, product.primary_taxon.name]
Matcher.match propertiesToMatch, text

View File

@@ -1,8 +1,16 @@
Darkswarm.factory 'Dereferencer', ->
new class Dereferencer
dereference: (array, data) ->
if array
for object, i in array
key = undefined
key = object.id if object
array[i] = data[key]
@dereference_from(array, array, data)
dereference_from: (source, target, data) ->
unreferenced = []
if source && target
for object, i in source
key = if object then object.id else undefined
if data.hasOwnProperty(key)
target[i] = data[key]
else
delete target[i]
unreferenced[i] = source[i]
unreferenced

View File

@@ -23,18 +23,14 @@ Darkswarm.factory 'Enterprises', (enterprises, CurrentHub, Taxons, Dereferencer,
@dereferenceEnterprise enterprise
dereferenceEnterprise: (enterprise) ->
# keep a backup of enterprise ids
# keep unreferenced enterprise ids
# in case we dereference again after adding more enterprises
if enterprise.hub_references
enterprise.hubs = enterprise.hub_references.slice()
else
enterprise.hub_references = enterprise.hubs.slice()
if enterprise.producer_references
enterprise.producers = enterprise.producer_references.slice()
else
enterprise.producer_references = enterprise.producers.slice()
Dereferencer.dereference enterprise.hubs, @enterprises_by_id
Dereferencer.dereference enterprise.producers, @enterprises_by_id
hubs = enterprise.unreferenced_hubs || enterprise.hubs
enterprise.unreferenced_hubs =
Dereferencer.dereference_from hubs, enterprise.hubs, @enterprises_by_id
producers = enterprise.unreferenced_producers || enterprise.producers
enterprise.unreferenced_producers =
Dereferencer.dereference_from producers, enterprise.producers, @enterprises_by_id
dereferenceTaxons: ->
for enterprise in @enterprises