From 7beb2aa97865165f4f60dbf08627e4df296f4710 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 25 Sep 2025 21:01:30 +0800 Subject: [PATCH] :art: Add `Default fill specific time` switch to database date field https://github.com/siyuan-note/siyuan/issues/12089 Signed-off-by: Daniel <845765@qq.com> --- kernel/av/value.go | 4 ++-- kernel/model/attribute_view.go | 2 +- kernel/sql/av.go | 4 ++-- kernel/sql/av_gallery.go | 6 +++--- kernel/sql/av_kanban.go | 6 +++--- kernel/sql/av_table.go | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/kernel/av/value.go b/kernel/av/value.go index de963c034..8b5c06e03 100644 --- a/kernel/av/value.go +++ b/kernel/av/value.go @@ -1240,7 +1240,7 @@ func (r *ValueRollup) calcContents(calc *RollupCalc, destKey *Key) { } } -func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType, keyDateAutoFill bool) (ret *Value) { +func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType, keyDateIsTime bool) (ret *Value) { if "" == valueID { valueID = ast.NewNodeID() } @@ -1266,7 +1266,7 @@ func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType, k case KeyTypeNumber: ret.Number = &ValueNumber{} case KeyTypeDate: - ret.Date = &ValueDate{IsNotTime: !keyDateAutoFill} + ret.Date = &ValueDate{IsNotTime: !keyDateIsTime} case KeyTypeSelect: ret.MSelect = []*ValueSelect{} case KeyTypeMSelect: diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 71e3738f7..41950efda 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -3303,7 +3303,7 @@ func addAttributeViewBlock(now int64, avID, dbBlockID, viewID, groupID, previous if nil == val { // 避免覆盖已有值(可能前面已经通过过滤或者分组条件填充了值) dateVal := &av.Value{ ID: ast.NewNodeID(), KeyID: keyValues.Key.ID, BlockID: addingItemID, Type: av.KeyTypeDate, IsDetached: isDetached, CreatedAt: now, UpdatedAt: now + 1000, - Date: &av.ValueDate{Content: now, IsNotEmpty: true}, + Date: &av.ValueDate{Content: now, IsNotEmpty: true, IsNotTime: !keyValues.Key.Date.FillSpecificTime}, } keyValues.Values = append(keyValues.Values, dateVal) } else { diff --git a/kernel/sql/av.go b/kernel/sql/av.go index a376c2aab..2f39a1717 100644 --- a/kernel/sql/av.go +++ b/kernel/sql/av.go @@ -329,7 +329,7 @@ func filterNotFoundAttrViewItems(keyValuesMap map[string][]*av.KeyValues) { } } -func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, fieldNumberFormat av.NumberFormat, fieldTemplate string, fieldDateAutoFill bool) { +func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, fieldNumberFormat av.NumberFormat, fieldTemplate string, fieldDateIsTime bool) { switch baseValue.ValueType { case av.KeyTypeNumber: // 格式化数字 if nil != baseValue.Value && nil != baseValue.Value.Number && baseValue.Value.Number.IsNotEmpty { @@ -345,7 +345,7 @@ func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, } if nil == baseValue.Value { - baseValue.Value = av.GetAttributeViewDefaultValue(baseValue.ID, fieldID, itemID, baseValue.ValueType, fieldDateAutoFill) + baseValue.Value = av.GetAttributeViewDefaultValue(baseValue.ID, fieldID, itemID, baseValue.ValueType, fieldDateIsTime) } else { FillAttributeViewNilValue(baseValue.Value, baseValue.ValueType) } diff --git a/kernel/sql/av_gallery.go b/kernel/sql/av_gallery.go index a373bc94e..1f7f37f1f 100644 --- a/kernel/sql/av_gallery.go +++ b/kernel/sql/av_gallery.go @@ -108,11 +108,11 @@ func RenderAttributeViewGallery(attrView *av.AttributeView, view *av.View, query } galleryCard.ID = cardID - filedDateAutoFill := false + filedDateIsTime := false if nil != field.Date { - filedDateAutoFill = field.Date.AutoFillNow + filedDateIsTime = field.Date.FillSpecificTime } - fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template, filedDateAutoFill) + fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template, filedDateIsTime) galleryCard.Values = append(galleryCard.Values, fieldValue) } diff --git a/kernel/sql/av_kanban.go b/kernel/sql/av_kanban.go index 7bc2302ef..808b8c202 100644 --- a/kernel/sql/av_kanban.go +++ b/kernel/sql/av_kanban.go @@ -102,11 +102,11 @@ func RenderAttributeViewKanban(attrView *av.AttributeView, view *av.View, query } kanbanCard.ID = cardID - filedDateAutoFill := false + filedDateIsTime := false if nil != field.Date { - filedDateAutoFill = field.Date.AutoFillNow + filedDateIsTime = field.Date.FillSpecificTime } - fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template, filedDateAutoFill) + fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template, filedDateIsTime) kanbanCard.Values = append(kanbanCard.Values, fieldValue) } diff --git a/kernel/sql/av_table.go b/kernel/sql/av_table.go index 1f1490e18..35073731f 100644 --- a/kernel/sql/av_table.go +++ b/kernel/sql/av_table.go @@ -96,11 +96,11 @@ func RenderAttributeViewTable(attrView *av.AttributeView, view *av.View, query s } tableRow.ID = rowID - filedDateAutoFill := false + filedDateIsTime := false if nil != col.Date { - filedDateAutoFill = col.Date.AutoFillNow + filedDateIsTime = col.Date.FillSpecificTime } - fillAttributeViewBaseValue(tableCell.BaseValue, col.ID, rowID, col.NumberFormat, col.Template, filedDateAutoFill) + fillAttributeViewBaseValue(tableCell.BaseValue, col.ID, rowID, col.NumberFormat, col.Template, filedDateIsTime) tableRow.Cells = append(tableRow.Cells, tableCell) } ret.Rows = append(ret.Rows, &tableRow)