Skip to content

Commit b6c80a5

Browse files
authored
Merge pull request cgwire#1719 from NicoPennec/main
Fix production schedule
2 parents 5af5aaa + 2001792 commit b6c80a5

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

src/components/pages/ProductionSchedule.vue

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -308,21 +308,9 @@ export default {
308308
production: this.currentProduction,
309309
taskType: this.taskTypeMap.get(taskTypeElement.task_type_id)
310310
}
311-
let scheduleItems = await loadScheduleItems(parameters)
312-
313-
if (taskTypeElement.for_entity === 'Asset') {
314-
// filtering following custom asset types workflow
315-
scheduleItems = scheduleItems.filter(scheduleItem => {
316-
const assetType = this.assetTypeMap.get(scheduleItem.object_id)
317-
return (
318-
assetType &&
319-
(!assetType.task_types.length ||
320-
assetType.task_types.includes(taskTypeElement.task_type_id))
321-
)
322-
})
323-
}
311+
const scheduleItems = await loadScheduleItems(parameters)
324312
325-
const children = this.convertScheduleItems(
313+
let children = this.convertScheduleItems(
326314
taskTypeElement,
327315
scheduleItems
328316
)
@@ -436,19 +424,41 @@ export default {
436424
})
437425
})
438426
439-
// sort grouped tasks by assignee name
440-
const sortByName = ([keyA], [keyB]) => {
427+
if (taskTypeElement.for_entity === 'Asset') {
428+
// filtering following custom asset types workflow
429+
children = children.filter(item => {
430+
const assetType = this.assetTypeMap.get(item.object_id)
431+
return (
432+
assetType &&
433+
(!assetType.task_types.length ||
434+
assetType.task_types.includes(taskTypeElement.task_type_id))
435+
)
436+
})
437+
}
438+
439+
// sort grouped tasks
440+
const sortEntitiesByUserName = ([keyA], [keyB]) => {
441441
if (keyA === 'unassigned') return 1
442442
if (keyB === 'unassigned') return -1
443443
return people[keyA].full_name.localeCompare(
444444
people[keyB].full_name
445445
)
446446
}
447+
const sortTasksByEntityName = (a, b) =>
448+
a.entity?.name.localeCompare(b.entity?.name, undefined, {
449+
numeric: true
450+
})
447451
children.forEach(child => {
448452
const items = tasksByType[child.object_id] || {}
449453
const sortedChildren = new Map(
450-
Object.entries(items).sort(sortByName)
454+
Object.entries(items)
455+
.sort(sortEntitiesByUserName)
456+
.map(([key, tasks]) => [
457+
key,
458+
tasks.sort(sortTasksByEntityName)
459+
])
451460
)
461+
452462
child.children = sortedChildren
453463
})
454464

0 commit comments

Comments
 (0)