diff --git a/app/assets/javascripts/supplier/app/controllers/index_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/index_controller.js.coffee
index bf820269..c6ae6ded 100644
--- a/app/assets/javascripts/supplier/app/controllers/index_controller.js.coffee
+++ b/app/assets/javascripts/supplier/app/controllers/index_controller.js.coffee
@@ -1,11 +1,17 @@
Qsupplier.App.IndexController = Ember.ObjectController.extend
active_lists: (->
- @get('lists').filterProperty('state', 'active')
- ).property('lists.@each.state')
+ if @get('sectionId')
+ @get('lists').filter (l)=>( l.get('section_id') == @get('sectionId') && l.get('state') == 'active' )
+ else
+ @get('lists').filterProperty('state', 'active')
+ ).property('lists.@each.state', 'sectionId')
active_orders: (->
- @get('orders').filter (o)->(o.get('state') == 'active')
- ).property('orders.@each.state')
+ if @get('sectionId')
+ @get('orders').filter (o)=>( o.get('section_id') == @get('sectionId') && o.get('needs_supplier_attention') )
+ else
+ @get('orders').filter (o)->( o.get('needs_supplier_attention') )
+ ).property('orders.@each.state', 'sectionId')
markListAsHelped: (id)->
list = Qsupplier.App.List.find(id)
@@ -15,3 +21,14 @@ Qsupplier.App.IndexController = Ember.ObjectController.extend
list = Qsupplier.App.List.find(id)
list.set('state', 'closed')
$.post '/supplier/close_list', {list_id: id}
+
+ markOrderDelivered: (id)->
+ $.post('/supplier/order_is_delivered', order_id: id)
+ if order = Qsupplier.App.Order.findCached(id)
+ order.set('state', 'delivered')
+
+ markOrderActive: (id)->
+ $.post('/supplier/mark_order_in_process', order_id: id)
+ if order = Qsupplier.App.Order.findCached(id)
+ order.set('state', 'active')
+ sectionId: ''
diff --git a/app/assets/javascripts/supplier/app/models/list.js.coffee b/app/assets/javascripts/supplier/app/models/list.js.coffee
index 7a0ed6e1..6a59c0d3 100644
--- a/app/assets/javascripts/supplier/app/models/list.js.coffee
+++ b/app/assets/javascripts/supplier/app/models/list.js.coffee
@@ -9,3 +9,5 @@ Qsupplier.App.List = DS.Model.extend
table_number: attr 'number'
table: DS.belongsTo('Qsupplier.App.Table', inverse: 'active_list')
orders: DS.hasMany('Qsupplier.App.Order')
+ section: DS.belongsTo('Qsupplier.App.Section')
+ section_id: attr('string')
diff --git a/app/assets/javascripts/supplier/app/models/order.js.coffee b/app/assets/javascripts/supplier/app/models/order.js.coffee
index 01ffc2f5..4918c392 100644
--- a/app/assets/javascripts/supplier/app/models/order.js.coffee
+++ b/app/assets/javascripts/supplier/app/models/order.js.coffee
@@ -4,8 +4,14 @@ Qsupplier.App.Order = DS.Model.extend
list: DS.belongsTo('Qsupplier.App.List')
total_amount: attr('number')
product_orders: attr('object')
+ section: DS.belongsTo('Qsupplier.App.Section')
+ section_id: attr('string')
+
active: (-> @get('state') == 'active').property('state')
delivered: (-> @get('state') == 'delivered').property('state')
+ placed: (-> @get('state') == 'placed').property('state')
+ needs_supplier_attention: (-> @get('state') == 'placed' || @get('state') == 'active').property('state')
+
display: (->
@get('product_orders').map((po)-> "#{po.product_name} (#{po.quantity})").join(',')
).property('product_orders')
diff --git a/app/assets/javascripts/supplier/app/routes/index_route.js.coffee b/app/assets/javascripts/supplier/app/routes/index_route.js.coffee
index 67dd4fdf..2c9edc42 100644
--- a/app/assets/javascripts/supplier/app/routes/index_route.js.coffee
+++ b/app/assets/javascripts/supplier/app/routes/index_route.js.coffee
@@ -3,8 +3,9 @@ Qsupplier.App.IndexRoute = Ember.Route.extend
Ember.Object.create
lists: Qsupplier.App.List.find({state: 'active'})
orders: Qsupplier.App.Order.find()
- #setupController: (controller, model)->
- #controller.set('model', model)
+ setupController: (controller, model)->
+ controller.set('model', model)
+ $('#section_selector').on 'change', (-> controller.set('sectionId', $(this).val()))
#controller.set 'lists', Qsupplier.App.List.all() #.filterProperty('state', 'active')
#controller.set 'orders', Qsupplier.App.Order.all()
#controller.set 'lists', model.get('lists')
diff --git a/app/assets/javascripts/supplier/app/templates/active_order.emblem b/app/assets/javascripts/supplier/app/templates/active_order.emblem
index 3c26283d..2f8afabf 100644
--- a/app/assets/javascripts/supplier/app/templates/active_order.emblem
+++ b/app/assets/javascripts/supplier/app/templates/active_order.emblem
@@ -3,6 +3,6 @@ td.numeric.table_number {{view.content.table_number}}
td.section_title {{view.content.section_title}}
td.currency {{currency view.content.total_amount}}
td.actions
- /**/
- /**/
- ' Actions
+ if view.content.placed
+ button.btn.btn-success{ action markOrderActive view.content.id} {{t 'order.being_processed'}}
+ button.btn.btn-inverse{ action markOrderDelivered view.content.id} {{t 'order.being_served' }}
diff --git a/app/serializers/list_serializer.rb b/app/serializers/list_serializer.rb
index 44c3b6cc..b98cbddd 100644
--- a/app/serializers/list_serializer.rb
+++ b/app/serializers/list_serializer.rb
@@ -1,4 +1,4 @@
class ListSerializer < Qwaiter::Serializer
embed :ids
- attributes :state, :needs_help, :needs_payment, :is_paid, :price, :table_id, :table_number
+ attributes :state, :needs_help, :needs_payment, :is_paid, :price, :table_id, :table_number, :section_id
end
diff --git a/app/serializers/order_serializer.rb b/app/serializers/order_serializer.rb
index a244cc15..866aadd9 100644
--- a/app/serializers/order_serializer.rb
+++ b/app/serializers/order_serializer.rb
@@ -1,4 +1,4 @@
class OrderSerializer < Qwaiter::Serializer
embed :ids
- attributes :state, :list_id
+ attributes :state, :list_id, :section_id
end