From 1b3e1b4efee62dce82b79a99a80bf215ce93fff5 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 23 Aug 2025 17:45:26 +0800 Subject: [PATCH] :art: Improve av https://github.com/siyuan-note/siyuan/issues/15661 --- kernel/model/attribute_view.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 1417305b6..1c071719f 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -3278,16 +3278,13 @@ func removeAttributeViewBlock(srcIDs []string, avID string, tx *Transaction) (er regenAttrViewGroups(attrView, "force") - relatedAvIDs := av.GetSrcAvIDs(avID) - for _, relatedAvID := range relatedAvIDs { - ReloadAttrView(relatedAvID) - } - err = av.SaveAttributeView(attrView) if nil != err { return } + refreshRelatedSrcAvs(avID) + historyDir, err := GetHistoryDir(HistoryOpUpdate) if err != nil { logging.LogErrorf("get history dir failed: %s", err) @@ -4216,7 +4213,11 @@ func RemoveAttributeViewKey(avID, keyID string, removeRelationDest bool) (err er } } - err = av.SaveAttributeView(attrView) + if err = av.SaveAttributeView(attrView); nil != err { + return + } + + refreshRelatedSrcAvs(avID) return } @@ -4347,11 +4348,6 @@ func BatchUpdateAttributeViewCells(tx *Transaction, avID string, values []interf return } } - - relatedAvIDs := av.GetSrcAvIDs(avID) - for _, relatedAvID := range relatedAvIDs { - ReloadAttrView(relatedAvID) - } return } @@ -4557,7 +4553,12 @@ func updateAttributeViewValue(tx *Transaction, attrView *av.AttributeView, keyID return } - relatedAvIDs := av.GetSrcAvIDs(avID) + refreshRelatedSrcAvs(avID) + return +} + +func refreshRelatedSrcAvs(destAvID string) { + relatedAvIDs := av.GetSrcAvIDs(destAvID) for _, relatedAvID := range relatedAvIDs { destAv, _ := av.ParseAttributeView(relatedAvID) if nil == destAv { @@ -4567,7 +4568,6 @@ func updateAttributeViewValue(tx *Transaction, attrView *av.AttributeView, keyID av.SaveAttributeView(destAv) ReloadAttrView(relatedAvID) } - return } // relationChangeMode