From d3ec7aa4bb7c907ecb70c065da01f7adda183853 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 5 Aug 2025 17:32:37 +0800 Subject: [PATCH 1/4] :art: Improve av grouping https://github.com/siyuan-note/siyuan/issues/15426 --- kernel/model/attribute_view.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index b2f20a3f2..d274fabfb 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -509,6 +509,8 @@ func ChangeAttrViewLayout(blockID, avID string, layout av.LayoutType) (err error } } + regenAttrViewViewGroups(attrView, "force") + if err = av.SaveAttributeView(attrView); nil != err { logging.LogErrorf("save attribute view [%s] failed: %s", avID, err) return From 11f7ad6a704c609f4ca4e69e46003fb366e3f86f Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 5 Aug 2025 17:38:07 +0800 Subject: [PATCH 2/4] :art: Improve av grouping https://github.com/siyuan-note/siyuan/issues/15443 --- kernel/model/attribute_view.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index d274fabfb..133536db7 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -1863,7 +1863,7 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) { v.Name = "" // 分组视图的名称在渲染时才填充 v.GroupVal = &av.Value{Type: av.KeyTypeText, Text: &av.ValueText{Content: groupValue}} if av.KeyTypeSelect == groupKey.Type || av.KeyTypeMSelect == groupKey.Type { - if opt := groupKey.GetOption(groupVal); nil != opt { + if opt := groupKey.GetOption(groupValue); nil != opt { v.GroupVal.Text = nil v.GroupVal.Type = av.KeyTypeSelect v.GroupVal.MSelect = []*av.ValueSelect{{Content: opt.Name, Color: opt.Color}} From e2114dffd895dd1c5959618a05654305710a0168 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 5 Aug 2025 17:39:10 +0800 Subject: [PATCH 3/4] :art: Improve av grouping https://github.com/siyuan-note/siyuan/issues/15443 --- kernel/model/attribute_view.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 133536db7..78d9a01d4 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -1750,16 +1750,15 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) { todayStart := time.Now() todayStart = time.Date(todayStart.Year(), todayStart.Month(), todayStart.Day(), 0, 0, 0, 0, time.Local) - var groupVal string groupItemsMap := map[string][]av.Item{} for _, item := range items { value := item.GetValue(group.Field) if value.IsEmpty() { - groupVal = groupValueDefault - groupItemsMap[groupVal] = append(groupItemsMap[groupVal], item) + groupItemsMap[groupValueDefault] = append(groupItemsMap[groupValueDefault], item) continue } + var groupVal string switch group.Method { case av.GroupMethodValue: if av.KeyTypeMSelect == groupKey.Type { From 7ac5b0010d4860450a19329882c7bfd181d1817a Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 5 Aug 2025 17:42:53 +0800 Subject: [PATCH 4/4] :art: Improve av grouping https://github.com/siyuan-note/siyuan/issues/15443 --- kernel/av/av.go | 2 +- kernel/model/attribute_view.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/av/av.go b/kernel/av/av.go index d69138b80..ff8a0b650 100644 --- a/kernel/av/av.go +++ b/kernel/av/av.go @@ -193,7 +193,7 @@ type View struct { ItemIDs []string `json:"itemIds,omitempty"` // 项目 ID 列表,用于维护所有项目 Group *ViewGroup `json:"group,omitempty"` // 分组规则 - GroupUpdated int64 `json:"groupUpdated"` // 分组规则更新时间戳 + GroupCreated int64 `json:"groupCreated"` // 分组生成时间戳 Groups []*View `json:"groups,omitempty"` // 分组视图列表 GroupItemIDs []string `json:"groupItemIds"` // 分组项目 ID 列表,用于维护分组中的所有项目 GroupCalc *GroupCalc `json:"groupCalc,omitempty"` // 分组计算规则 diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 78d9a01d4..70c8ee0e0 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -217,7 +217,7 @@ func removeAttributeViewGroup(avID, blockID string) (err error) { } func removeAttributeViewGroup0(view *av.View) { - view.Group, view.Groups, view.GroupUpdated = nil, nil, 0 + view.Group, view.Groups, view.GroupCreated = nil, nil, 0 } func (tx *Transaction) doSyncAttrViewTableColWidth(operation *Operation) (ret *TxErr) { @@ -1613,8 +1613,8 @@ func renderAttributeView(attrView *av.AttributeView, blockID, viewID, query stri // 当前日期可能会变,所以如果是按日期分组则需要重新生成分组 if isGroupByDate(view) { - updatedDate := time.UnixMilli(view.GroupUpdated).Format("2006-01-02") - if time.Now().Format("2006-01-02") != updatedDate { + createdDate := time.UnixMilli(view.GroupCreated).Format("2006-01-02") + if time.Now().Format("2006-01-02") != createdDate { regenAttrViewViewGroups(attrView, "force") av.SaveAttributeView(attrView) } @@ -1871,7 +1871,7 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) { view.Groups = append(view.Groups, v) } - view.GroupUpdated = time.Now().UnixMilli() + view.GroupCreated = time.Now().UnixMilli() setAttrViewGroupStates(view, groupStates)