Files
2018-01-15 17:55:11 -03:00

69 lines
3.5 KiB
CoffeeScript

import DS from 'ember-data'
export default DS.Model.extend
update_revision: 0
manager_ids: DS.attr(defaultValue: -> [])
name: DS.attr('string')
identifier: DS.attr('string')
start_date: DS.attr('moment')
end_date: DS.attr('moment')
percent_done: DS.attr('number', defaultValue: 0)
expected_number_of_workflow_instances: DS.attr('number')
instance_scope: DS.attr('string', defaultValue: 'instance')
batch_size_lower_value: DS.attr('number', defaultValue: 0)
batch_size_upper_value: DS.attr('number', defaultValue: 200)
reference_date_day_of_week: DS.attr('string')
#organizations: DS.hasMany('organization', inverse: 'projects', serialize: 'ids')
workflow_groups: DS.hasMany('panda/workflow-group')
users: DS.hasMany('user', serialize: 'ids')
workflow_instance_type: DS.belongsTo('panda/workflow-instance-type', inverse: 'projects')
tracker_subjects: DS.hasMany('panda/tracker-subject')
workflow_action_definitions: DS.hasMany('panda/workflow-action-definition', inverse: 'project')
project_scenarios: DS.hasMany('panda/project-scenario', inverse: 'project')
workflowGroupSort: ['position:asc']
sorted_workflow_groups: Ember.computed.sort('workflow_groups', 'workflowGroupSort')
sorted_workflow_action_definitions: Ember.computed 'workflow_groups.@each.position', 'workflow_action_definitions.@each.position', ->
@get('workflow_action_definitions').map((r) ->
base = r.get('workflow_group.position')
base = 100 unless Number.isFinite(base) # more than 100 groups is stupid, more than 200 actions in a group as well
r.set('absolute_sorter', (200 * base) + r.get('position'))
r
).sortBy 'absolute_sorter'
unassigned_workflow_action_definitions: Ember.computed 'workflow_action_definitions.@each.workflow_group.id', ->
@get('workflow_action_definitions').rejectBy('workflow_group.id').sortBy 'title'
instance_scope_batch: Ember.computed.equal 'instance_scope', 'batch'
project_instances: DS.hasMany('panda/project-instance', inverse: 'project')
project_instance_groups: DS.hasMany('panda/project-instance-group', inverse: 'project')
project_instance_actions: DS.hasMany('panda/project-instance-action', inverse: 'project')
project_scenarios_sort: ['name:asc']
sorted_project_scenarios: Ember.computed.sort 'project_scenarios', 'project_scenarios_sort'
#unassigned_workflow_action_definitions: Ember.computed ->
# promise = new Ember.RSVP.Promise (resolve) =>
# @get('workflow_action_definitions').then (workflow_action_definitions) ->
# Ember.RSVP.all(workflow_action_definitions.mapBy 'workflow_group').then ->
# resolve workflow_action_definitions.sortBy 'title'
# DS.PromiseArray.create
# promise: promise
#unassigned_workflow_action_definitions: ( ->
# [@store.createRecord('panda/workflow-action-definition', id: 'asdf', title: 'asdf2')]
#).property()
#unassigned_workflow_action_definitions: Ember.computed ->
# promise = @get('workflow_action_definitions')
# promise.then (workflow_action_definitions) ->
# workflow_action_definitions.rejectBy('workflow_group').sortBy 'title'
# promise
#unassigned_workflow_action_definitions: Ember.computed ->
# DS.PromiseArray.create
# promise: Ember.RSVP.filter @get('workflow_action_definitions'), (workflow_action_definitions) ->
# debugger
# workflow_action_definitions.sortBy 'title'
#@get('workflow_action_definitions').rejectBy('workflow_group.id').sortBy 'title'