From 5700a9f18a241984251d0b604180de40adb2e27c Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 7 Mar 2024 16:11:58 +0800 Subject: [PATCH] :art: Improve db tv relation render --- kernel/av/filter.go | 2 +- kernel/av/value.go | 8 ++++---- kernel/model/attribute_view.go | 8 ++++---- kernel/treenode/node.go | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/kernel/av/filter.go b/kernel/av/filter.go index 8e254fedf..c395cfa4d 100644 --- a/kernel/av/filter.go +++ b/kernel/av/filter.go @@ -300,7 +300,7 @@ func (filter *ViewFilter) GetAffectValue(key *Key, defaultVal *Value) (ret *Valu } case FilterOperatorDoesNotContain: case FilterOperatorIsEmpty: - ret.Relation = &ValueRelation{Contents: []string{}} + ret.Relation = &ValueRelation{Contents: []*Value{}} case FilterOperatorIsNotEmpty: } } diff --git a/kernel/av/value.go b/kernel/av/value.go index 81b919708..979a43f14 100644 --- a/kernel/av/value.go +++ b/kernel/av/value.go @@ -141,16 +141,16 @@ func (value *Value) String() string { } return "" case KeyTypeRelation: - if 1 > len(value.Relation.Contents) { + if nil == value.Relation || 1 > len(value.Relation.Contents) { return "" } var ret []string for _, v := range value.Relation.Contents { - ret = append(ret, v) + ret = append(ret, v.String()) } return strings.TrimSpace(strings.Join(ret, ", ")) case KeyTypeRollup: - if nil == value.Rollup || nil == value.Rollup.Contents { + if nil == value.Rollup || 1 > len(value.Rollup.Contents) { return "" } var ret []string @@ -648,8 +648,8 @@ type ValueCheckbox struct { } type ValueRelation struct { - Contents []string `json:"contents"` BlockIDs []string `json:"blockIDs"` + Contents []*Value `json:"contents"` } type ValueRollup struct { diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 36f99d506..856e90786 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -403,9 +403,9 @@ func GetBlockAttributeViewKeys(blockID string) (ret []*BlockAttributeViewKeys) { break } - blocks := map[string]string{} + blocks := map[string]*av.Value{} for _, blockValue := range destAv.GetBlockKeyValues().Values { - blocks[blockValue.BlockID] = blockValue.Block.Content + blocks[blockValue.BlockID] = blockValue } for _, bID := range kv.Values[0].Relation.BlockIDs { kv.Values[0].Relation.Contents = append(kv.Values[0].Relation.Contents, blocks[bID]) @@ -1029,9 +1029,9 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a if nil != relKey && nil != relKey.Relation { destAv, _ := av.ParseAttributeView(relKey.Relation.AvID) if nil != destAv { - blocks := map[string]string{} + blocks := map[string]*av.Value{} for _, blockValue := range destAv.GetBlockKeyValues().Values { - blocks[blockValue.BlockID] = blockValue.Block.Content + blocks[blockValue.BlockID] = blockValue } for _, blockID := range cell.Value.Relation.BlockIDs { cell.Value.Relation.Contents = append(cell.Value.Relation.Contents, blocks[blockID]) diff --git a/kernel/treenode/node.go b/kernel/treenode/node.go index 6795b783d..c06899219 100644 --- a/kernel/treenode/node.go +++ b/kernel/treenode/node.go @@ -827,9 +827,9 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a if nil != relKey && nil != relKey.Relation { destAv, _ := av.ParseAttributeView(relKey.Relation.AvID) if nil != destAv { - blocks := map[string]string{} + blocks := map[string]*av.Value{} for _, blockValue := range destAv.GetBlockKeyValues().Values { - blocks[blockValue.BlockID] = blockValue.Block.Content + blocks[blockValue.BlockID] = blockValue } for _, blockID := range cell.Value.Relation.BlockIDs { cell.Value.Relation.Contents = append(cell.Value.Relation.Contents, blocks[blockID])