Index variant overrides by hub_id x variant_id

This commit is contained in:
Rohan Mitchell
2014-12-04 12:12:20 +11:00
parent 5cf3579b26
commit d3e639aa03
3 changed files with 29 additions and 3 deletions

View File

@@ -3,4 +3,6 @@ angular.module("ofn.admin").factory "VariantOverrides", (variantOverrides, Index
variantOverrides: {}
constructor: ->
@variantOverrides = Indexer.index variantOverrides, 'variant_id'
for vo in variantOverrides
@variantOverrides[vo.hub_id] ||= {}
@variantOverrides[vo.hub_id][vo.variant_id] = vo

View File

@@ -2,7 +2,7 @@
%td
%td {{ variant.options_text }}
%td
%input{name: 'variant-overrides-{{ variant.id }}-price', type: 'text', ng: {model: 'variantOverrides[variant.id].price'}, placeholder: '{{ variant.price }}'}
%input{name: 'variant-overrides-{{ variant.id }}-price', type: 'text', ng: {model: 'variantOverrides[hub.id][variant.id].price'}, placeholder: '{{ variant.price }}'}
%td
%input{name: 'variant-overrides-{{ variant.id }}-count-on-hand', type: 'text', ng: {model: 'variantOverrides[variant.id].count_on_hand'}, placeholder: '{{ variant.on_hand }}'}
%input{name: 'variant-overrides-{{ variant.id }}-count-on-hand', type: 'text', ng: {model: 'variantOverrides[hub.id][variant.id].count_on_hand'}, placeholder: '{{ variant.on_hand }}'}

View File

@@ -0,0 +1,24 @@
describe "VariantOverrides service", ->
VariantOverrides = null
variantOverrides = [
{id: 1, hub_id: 10, variant_id: 100, price: 1, count_on_hand: 1}
{id: 2, hub_id: 10, variant_id: 200, price: 2, count_on_hand: 2}
{id: 3, hub_id: 20, variant_id: 300, price: 3, count_on_hand: 3}
]
beforeEach ->
module "ofn.admin"
module ($provide) ->
$provide.value "variantOverrides", variantOverrides
null
beforeEach inject (_VariantOverrides_) ->
VariantOverrides = _VariantOverrides_
it "indexes variant overrides by hub_id -> variant_id", ->
expect(VariantOverrides.variantOverrides).toEqual
10:
100: {id: 1, hub_id: 10, variant_id: 100, price: 1, count_on_hand: 1}
200: {id: 2, hub_id: 10, variant_id: 200, price: 2, count_on_hand: 2}
20:
300: {id: 3, hub_id: 20, variant_id: 300, price: 3, count_on_hand: 3}