From 8db022ec8a76e9932c93b1b777f1c11bdbf199cb Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 5 Oct 2023 22:22:54 +0800 Subject: [PATCH 1/2] :art: Database template col type --- kernel/model/attribute_view.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 23a6f67e7..0d8a45058 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -50,13 +50,18 @@ func renderTemplateCol(blockID, tplContent string, rowValues []*av.KeyValues) st buf := &bytes.Buffer{} ial := GetBlockAttrs(blockID) - dataModel := map[string]string{} // 复制一份 IAL 以避免修改原始数据 + dataModel := map[string]interface{}{} // 复制一份 IAL 以避免修改原始数据 for k, v := range ial { dataModel[strings.ReplaceAll(k, "custom-", "custom_")] = v } for _, rowValue := range rowValues { if 0 < len(rowValue.Values) { - dataModel[rowValue.Key.Name] = rowValue.Values[0].String() + v := rowValue.Values[0] + if av.KeyTypeNumber == v.Type { + dataModel[rowValue.Key.Name] = v.Number.Content + } else { + dataModel[rowValue.Key.Name] = v.String() + } } } if err := tpl.Execute(buf, dataModel); nil != err { From a3ea6a2362d9ae64b5b17af87664e91ea42ea5cf Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 6 Oct 2023 10:17:52 +0800 Subject: [PATCH 2/2] :art: Database column icon https://github.com/siyuan-note/siyuan/issues/9304 --- kernel/av/av.go | 5 +++-- kernel/model/attribute_view.go | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/av/av.go b/kernel/av/av.go index 4b2d55072..934080159 100644 --- a/kernel/av/av.go +++ b/kernel/av/av.go @@ -82,11 +82,12 @@ type Key struct { Template string `json:"template"` // 模板内容 } -func NewKey(id, name string, keyType KeyType) *Key { +func NewKey(id, name, icon string, keyType KeyType) *Key { return &Key{ ID: id, Name: name, Type: keyType, + Icon: icon, } } @@ -397,7 +398,7 @@ type Viewable interface { func NewAttributeView(id string) (ret *AttributeView) { view := NewView() - key := NewKey(ast.NewNodeID(), "Block", KeyTypeBlock) + key := NewKey(ast.NewNodeID(), "Block", "", KeyTypeBlock) ret = &AttributeView{ Spec: 0, ID: id, diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 0d8a45058..cbf04b63b 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -903,7 +903,7 @@ func addAttributeViewColumn(operation *Operation) (err error) { keyType := av.KeyType(operation.Typ) switch keyType { case av.KeyTypeText, av.KeyTypeNumber, av.KeyTypeDate, av.KeyTypeSelect, av.KeyTypeMSelect, av.KeyTypeURL, av.KeyTypeEmail, av.KeyTypePhone, av.KeyTypeMAsset, av.KeyTypeTemplate: - key := av.NewKey(operation.ID, operation.Name, keyType) + key := av.NewKey(operation.ID, operation.Name, operation.Data.(string), keyType) attrView.KeyValues = append(attrView.KeyValues, &av.KeyValues{Key: key}) switch view.LayoutType {