From 43e6d194031b0761bc5bdf90fcfe545df177ea7f Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Tue, 23 Aug 2022 16:39:21 +0700 Subject: [PATCH] Fix estimation issues (#2256) Signed-off-by: Andrey Sobolev --- models/tracker/src/index.ts | 3 ++ plugins/tracker-assets/lang/en.json | 4 ++- plugins/tracker-assets/lang/ru.json | 6 ++-- .../src/components/issues/IssuesList.svelte | 14 +++++++- .../issues/timereport/EstimationPopup.svelte | 2 ++ .../issues/timereport/ReportsPopup.svelte | 1 + .../src/components/sprints/EditSprint.svelte | 36 ++++++++++++++++++- .../components/sprints/SprintEditor.svelte | 22 ++++++------ .../src/components/sprints/SprintPopup.svelte | 19 ++++++++-- plugins/tracker-resources/src/plugin.ts | 4 ++- plugins/tracker-resources/src/utils.ts | 15 ++++++-- plugins/tracker/src/index.ts | 3 ++ .../src/components/TableBrowser.svelte | 6 ++-- 13 files changed, 112 insertions(+), 23 deletions(-) diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts index 9295c22f1e..d789cb11ba 100644 --- a/models/tracker/src/index.ts +++ b/models/tracker/src/index.ts @@ -361,6 +361,9 @@ export class TSprint extends TDoc implements Sprint { targetDate!: Timestamp declare space: Ref + + @Prop(TypeNumber(), tracker.string.Capacity) + capacity!: number } @UX(core.string.Number) diff --git a/plugins/tracker-assets/lang/en.json b/plugins/tracker-assets/lang/en.json index df20131055..ec2a802e47 100644 --- a/plugins/tracker-assets/lang/en.json +++ b/plugins/tracker-assets/lang/en.json @@ -210,7 +210,9 @@ "TimeSpendValue": "{value}d", "SprintPassed": "{from}d/{to}d", "ChildEstimation": "Subissues Estimation", - "ChildReportedTime": "Subissues Time" + "ChildReportedTime": "Subissues Time", + "Capacity": "Capacity", + "CapacityValue": "of {value}d" }, "status": {} } diff --git a/plugins/tracker-assets/lang/ru.json b/plugins/tracker-assets/lang/ru.json index 2e2c7adb7b..5187fcc375 100644 --- a/plugins/tracker-assets/lang/ru.json +++ b/plugins/tracker-assets/lang/ru.json @@ -209,8 +209,10 @@ "TimeSpendReportDescription": "Описание", "TimeSpendValue": "{value}d", "SprintPassed": "{from}d/{to}d", - "ChildEstimation": "Subissues Estimation", - "ChildReportedTime": "Subissues Time" + "ChildEstimation": "Оценка подзадач", + "ChildReportedTime": "Время водзадач", + "Capacity": "Вместимость", + "CapacityValue": "из {value}d" }, "status": {} } diff --git a/plugins/tracker-resources/src/components/issues/IssuesList.svelte b/plugins/tracker-resources/src/components/issues/IssuesList.svelte index 4c964cd838..334d7149a0 100644 --- a/plugins/tracker-resources/src/components/issues/IssuesList.svelte +++ b/plugins/tracker-resources/src/components/issues/IssuesList.svelte @@ -75,7 +75,19 @@ let personPresenter: AttributeModel - $: isCollapsedMap = Object.fromEntries(categories.map((category) => [category, false])) + const isCollapsedMap: Record = {} + + $: { + const exkeys = new Set(Object.keys(isCollapsedMap)) + for (const c of categories) { + if (!exkeys.delete(c)) { + isCollapsedMap[c] = false + } + } + for (const k of exkeys) { + delete isCollapsedMap[k] + } + } $: combinedGroupedIssues = Object.values(groupedIssues).flat(1) $: options = { ...baseOptions, sort: { [orderBy]: issuesSortOrderMap[orderBy] } } as FindOptions $: headerComponent = groupByKey === undefined || groupByKey === 'assignee' ? null : issuesGroupEditorMap[groupByKey] diff --git a/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte b/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte index f8b5852a96..1c15c47f3d 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte @@ -75,6 +75,7 @@