From 1ae39777a6755f33ee16b6521f746a0221a8296f Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 14 Apr 2024 21:26:02 +0800 Subject: [PATCH] :art: Improve database template field to use relation/rollup field Fix https://github.com/siyuan-note/siyuan/issues/11029 --- kernel/treenode/node.go | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/kernel/treenode/node.go b/kernel/treenode/node.go index 810b978c9..db65da824 100644 --- a/kernel/treenode/node.go +++ b/kernel/treenode/node.go @@ -1050,9 +1050,30 @@ func renderTemplateCol(ial map[string]string, rowValues []*av.KeyValues, tplCont dataModel[rowValue.Key.Name] = time.UnixMilli(v.Date.Content) } } else if av.KeyTypeRollup == v.Type { - if 0 < len(v.Rollup.Contents) && av.KeyTypeNumber == v.Rollup.Contents[0].Type { - // 汇总数字时仅取第一个数字填充模板 - dataModel[rowValue.Key.Name] = v.Rollup.Contents[0].Number.Content + if 0 < len(v.Rollup.Contents) { + var numbers []float64 + var contents []string + for _, content := range v.Rollup.Contents { + if av.KeyTypeNumber == content.Type { + numbers = append(numbers, content.Number.Content) + } else { + contents = append(contents, content.String(true)) + } + } + + if 0 < len(numbers) { + dataModel[rowValue.Key.Name] = numbers + } else { + dataModel[rowValue.Key.Name] = contents + } + } + } else if av.KeyTypeRelation == v.Type { + if 0 < len(v.Relation.Contents) { + var contents []string + for _, content := range v.Relation.Contents { + contents = append(contents, content.String(true)) + } + dataModel[rowValue.Key.Name] = contents } } else { dataModel[rowValue.Key.Name] = v.String(true)