From 9ae527c9a5b5087ce970575b41c6cdd63afe6dd5 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 25 Jul 2025 14:48:48 +0800 Subject: [PATCH] :art: Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964 --- app/appearance/langs/ar_SA.json | 3 ++- app/appearance/langs/de_DE.json | 3 ++- app/appearance/langs/en_US.json | 3 ++- app/appearance/langs/es_ES.json | 3 ++- app/appearance/langs/fr_FR.json | 3 ++- app/appearance/langs/he_IL.json | 3 ++- app/appearance/langs/it_IT.json | 3 ++- app/appearance/langs/ja_JP.json | 3 ++- app/appearance/langs/pl_PL.json | 3 ++- app/appearance/langs/pt_BR.json | 3 ++- app/appearance/langs/ru_RU.json | 3 ++- app/appearance/langs/zh_CHT.json | 3 ++- app/appearance/langs/zh_CN.json | 3 ++- kernel/av/layout.go | 2 -- kernel/model/attribute_view.go | 16 ++++++++-------- 15 files changed, 34 insertions(+), 23 deletions(-) diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index 25b771c68..7fca87a12 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -1641,6 +1641,7 @@ "261": "اليوم", "262": "غدًا", "263": "التالي %d أيام", - "264": "الحقل [%s] فارغ" + "264": "الحقل [%s] فارغ", + "265": "خارج النطاق" } } diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index f56a8d31c..3d3f03a9c 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -1641,6 +1641,7 @@ "261": "Heute", "262": "Morgen", "263": "Nächste %d Tage", - "264": "Das Feld [%s] ist leer" + "264": "Das Feld [%s] ist leer", + "265": "Außerhalb des Bereichs" } } diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 4991583d4..f0b540463 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1641,6 +1641,7 @@ "261": "Today", "262": "Tomorrow", "263": "Next %d days", - "264": "Field [%s] is empty" + "264": "Field [%s] is empty", + "265": "Out of range" } } diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index e0044702a..0268c882c 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1641,6 +1641,7 @@ "261": "Hoy", "262": "Mañana", "263": "Próximos %d días", - "264": "El campo [%s] está vacío" + "264": "El campo [%s] está vacío", + "265": "Fuera de rango" } } diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 86195cafb..134c2d530 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1641,6 +1641,7 @@ "261": "Aujourd'hui", "262": "Demain", "263": "Les %d prochains jours", - "264": "Le champ [%s] est vide" + "264": "Le champ [%s] est vide", + "265": "Hors de portée" } } diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index 78730608c..b69bb0489 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -1641,6 +1641,7 @@ "261": "היום", "262": "מחר", "263": "ה-%d ימים הבאים", - "264": "השדה [%s] ריק" + "264": "השדה [%s] ריק", + "265": "מחוץ לטווח" } } diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index c3d38ac36..fa3d8219f 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -1641,6 +1641,7 @@ "261": "Oggi", "262": "Domani", "263": "Prossimi %d giorni", - "264": "Il campo [%s] è vuoto" + "264": "Il campo [%s] è vuoto", + "265": "Fuori intervallo" } } diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index 34fceec09..99d26871e 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -1641,6 +1641,7 @@ "261": "今日", "262": "明日", "263": "次の %d 日間", - "264": "フィールド [%s] の値が空です" + "264": "フィールド [%s] の値が空です", + "265": "範囲外" } } diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index e1be5bf2b..dc13d5dbd 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -1641,6 +1641,7 @@ "261": "Dzisiaj", "262": "Jutro", "263": "Następne %d dni", - "264": "Pole [%s] jest puste" + "264": "Pole [%s] jest puste", + "265": "Poza zakresem" } } diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json index dfa431abc..562a94c4c 100644 --- a/app/appearance/langs/pt_BR.json +++ b/app/appearance/langs/pt_BR.json @@ -1641,6 +1641,7 @@ "261": "Hoje", "262": "Amanhã", "263": "Próximos %d dias", - "264": "O campo [%s] está vazio" + "264": "O campo [%s] está vazio", + "265": "Fora do intervalo" } } diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index f7ad1ebcd..4695eb594 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -1641,6 +1641,7 @@ "261": "Сегодня", "262": "Завтра", "263": "Следующие %d дней", - "264": "Поле [%s] имеет пустое значение" + "264": "Поле [%s] имеет пустое значение", + "265": "Вне диапазона" } } diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index b160bcde4..31b1365e3 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1641,6 +1641,7 @@ "261": "今天", "262": "明天", "263": "未來 %d 天", - "264": "字段 [%s] 值為空" + "264": "字段 [%s] 值為空", + "265": "不在範圍內" } } diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 6aa1204a8..d536d748c 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1641,6 +1641,7 @@ "261": "今天", "262": "明天", "263": "未来 %d 天", - "264": "字段 [%s] 值为空" + "264": "字段 [%s] 值为空", + "265": "不在范围内" } } diff --git a/kernel/av/layout.go b/kernel/av/layout.go index c642dd8d3..6c0b9f3f0 100644 --- a/kernel/av/layout.go +++ b/kernel/av/layout.go @@ -63,8 +63,6 @@ type BaseInstance struct { PageSize int `json:"pageSize"` // 每页项目数 ShowIcon bool `json:"showIcon"` // 是否显示字段图标 WrapField bool `json:"wrapField"` // 是否换行字段内容 - Folded bool `json:"folded,omitempty"` // 是否折叠 - Hidden bool `json:"hidden,omitempty"` // 是否隐藏 Groups []Viewable `json:"groups,omitempty"` // 分组实例列表 GroupCalc *GroupCalc `json:"groupCalc,omitempty"` // 分组计算规则和结果 diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 93b0afb39..fb61cd577 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -1373,13 +1373,11 @@ func renderAttributeView(attrView *av.AttributeView, blockID, viewID, query stri } if "" == viewID && "" != blockID { - if "" != blockID { - node, _, getErr := getNodeByBlockID(nil, blockID) - if nil != getErr { - logging.LogWarnf("get node by block ID [%s] failed: %s", blockID, getErr) - } else { - viewID = node.IALAttr(av.NodeAttrView) - } + node, _, getErr := getNodeByBlockID(nil, blockID) + if nil != getErr { + logging.LogWarnf("get node by block ID [%s] failed: %s", blockID, getErr) + } else { + viewID = node.IALAttr(av.NodeAttrView) } } @@ -1438,7 +1436,7 @@ func renderAttributeView(attrView *av.AttributeView, blockID, viewID, query stri } } - // 如果存在分组的话渲染分组视图视图 + // 如果存在分组的话渲染分组视图 var groups []av.Viewable for _, groupView := range view.Groups { switch groupView.LayoutType { @@ -1619,6 +1617,8 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) { if defaultGroupName == name { name = fmt.Sprintf(Conf.language(264), groupKey.Name) + } else if notInRange == name { + name = fmt.Sprintf(Conf.language(265)) } v.Name = name view.Groups = append(view.Groups, v)