Files
mozo-backend/app/assets/javascripts/user/app/models/list.js.coffee
T
2015-05-27 15:28:09 +02:00

32 lines
1.2 KiB
CoffeeScript

attr = DS.attr
App.List = DS.Model.extend
orders: DS.hasMany('order')
needs_help: attr('boolean')
needs_payment: attr('boolean')
user_requests_closing: attr('boolean')
state: attr('string')
price: attr('number')
closed_at: DS.attr('date')
extended_version: attr('boolean')
supplier_orders_in_process_count: attr('number')
supplier_orders_placed_count: attr('number')
cached_supplier_name: attr('string')
supplier: DS.belongsTo('supplier')
table: DS.belongsTo('table')
join_requests: DS.hasMany('join_request')
users: DS.hasMany('user')
is_extended_version: ->
@get('extended_version')
relevant_orders: (-> @get('orders').filter((o)->o.get('state') isnt 'cancelled')).property('orders.@each.state')
sorted_orders: (-> @get('relevant_orders').sortBy('created_at').reverseObjects()).property('relevant_orders.@each.isLoaded')
total: (->
@get('relevant_orders').getEach('total').reduce(((sum, total) -> sum + total), 0)
).property('relevant_orders.@each.total')
active: (-> @get('state') is 'active' ).property('state')
showTotal: (->
if @get('orders.length') && @get('orders.length') > 1 then true else false
).property('orders.length')