mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 23:20:13 +01:00
🎨 When "Default fill created time" is enabled for database date fields, the automatically filled time value is incorrect https://github.com/siyuan-note/siyuan/issues/15828
Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
parent
370601d277
commit
7faf981b69
5 changed files with 19 additions and 11 deletions
|
|
@ -1201,7 +1201,7 @@ func (r *ValueRollup) calcContents(calc *RollupCalc, destKey *Key) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType) (ret *Value) {
|
func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType, keyDateAutoFill bool) (ret *Value) {
|
||||||
if "" == valueID {
|
if "" == valueID {
|
||||||
valueID = ast.NewNodeID()
|
valueID = ast.NewNodeID()
|
||||||
}
|
}
|
||||||
|
|
@ -1227,7 +1227,7 @@ func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType) (
|
||||||
case KeyTypeNumber:
|
case KeyTypeNumber:
|
||||||
ret.Number = &ValueNumber{}
|
ret.Number = &ValueNumber{}
|
||||||
case KeyTypeDate:
|
case KeyTypeDate:
|
||||||
ret.Date = &ValueDate{IsNotTime: true}
|
ret.Date = &ValueDate{IsNotTime: !keyDateAutoFill}
|
||||||
case KeyTypeSelect:
|
case KeyTypeSelect:
|
||||||
ret.MSelect = []*ValueSelect{}
|
ret.MSelect = []*ValueSelect{}
|
||||||
case KeyTypeMSelect:
|
case KeyTypeMSelect:
|
||||||
|
|
|
||||||
|
|
@ -233,7 +233,7 @@ func getAttrViewAddingBlockDefaultValues(attrView *av.AttributeView, view, group
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type)
|
newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type, false)
|
||||||
newValue.MSelect = append(newValue.MSelect, &av.ValueSelect{Content: opt.Name, Color: opt.Color})
|
newValue.MSelect = append(newValue.MSelect, &av.ValueSelect{Content: opt.Name, Color: opt.Color})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -278,7 +278,7 @@ func getAttrViewAddingBlockDefaultValues(attrView *av.AttributeView, view, group
|
||||||
|
|
||||||
if nil == nearItem && !filterKeyIDs[groupKey.ID] {
|
if nil == nearItem && !filterKeyIDs[groupKey.ID] {
|
||||||
// 没有临近项并且分组字段和过滤字段不同时,使用分组值
|
// 没有临近项并且分组字段和过滤字段不同时,使用分组值
|
||||||
newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type)
|
newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type, false)
|
||||||
if av.KeyTypeText == groupView.GroupVal.Type {
|
if av.KeyTypeText == groupView.GroupVal.Type {
|
||||||
content := groupView.GroupVal.Text.Content
|
content := groupView.GroupVal.Text.Content
|
||||||
switch newValue.Type {
|
switch newValue.Type {
|
||||||
|
|
@ -1535,7 +1535,7 @@ func GetBlockAttributeViewKeys(nodeID string) (ret []*BlockAttributeViewKeys) {
|
||||||
keyValues = append(keyValues, kValues)
|
keyValues = append(keyValues, kValues)
|
||||||
} else {
|
} else {
|
||||||
// 如果没有值,那么就补一个默认值
|
// 如果没有值,那么就补一个默认值
|
||||||
kValues.Values = append(kValues.Values, av.GetAttributeViewDefaultValue(itemID[:14]+ast.NewNodeID()[14:], kv.Key.ID, itemID, kv.Key.Type))
|
kValues.Values = append(kValues.Values, av.GetAttributeViewDefaultValue(itemID[:14]+ast.NewNodeID()[14:], kv.Key.ID, itemID, kv.Key.Type, false))
|
||||||
keyValues = append(keyValues, kValues)
|
keyValues = append(keyValues, kValues)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1651,7 +1651,7 @@ func GetBlockAttributeViewKeys(nodeID string) (ret []*BlockAttributeViewKeys) {
|
||||||
ial = map[string]string{}
|
ial = map[string]string{}
|
||||||
}
|
}
|
||||||
if nil == kv.Values[0].Template {
|
if nil == kv.Values[0].Template {
|
||||||
kv.Values[0] = av.GetAttributeViewDefaultValue(kv.Values[0].ID, kv.Key.ID, nodeID, kv.Key.Type)
|
kv.Values[0] = av.GetAttributeViewDefaultValue(kv.Values[0].ID, kv.Key.ID, nodeID, kv.Key.Type, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
var renderErr error
|
var renderErr error
|
||||||
|
|
@ -3156,7 +3156,7 @@ func addAttributeViewBlock(now int64, avID, dbBlockID, viewID, groupID, previous
|
||||||
} else {
|
} else {
|
||||||
if val.IsRenderAutoFill {
|
if val.IsRenderAutoFill {
|
||||||
val.CreatedAt, val.UpdatedAt = now, now+1000
|
val.CreatedAt, val.UpdatedAt = now, now+1000
|
||||||
val.Date.Content, val.Date.IsNotEmpty = now, true
|
val.Date.Content, val.Date.IsNotEmpty, val.Date.IsNotTime = now, true, false
|
||||||
val.IsRenderAutoFill = false
|
val.IsRenderAutoFill = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ func filterNotFoundAttrViewItems(keyValuesMap map[string][]*av.KeyValues) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, fieldNumberFormat av.NumberFormat, fieldTemplate string) {
|
func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, fieldNumberFormat av.NumberFormat, fieldTemplate string, fieldDateAutoFill bool) {
|
||||||
switch baseValue.ValueType {
|
switch baseValue.ValueType {
|
||||||
case av.KeyTypeNumber: // 格式化数字
|
case av.KeyTypeNumber: // 格式化数字
|
||||||
if nil != baseValue.Value && nil != baseValue.Value.Number && baseValue.Value.Number.IsNotEmpty {
|
if nil != baseValue.Value && nil != baseValue.Value.Number && baseValue.Value.Number.IsNotEmpty {
|
||||||
|
|
@ -330,7 +330,7 @@ func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string,
|
||||||
}
|
}
|
||||||
|
|
||||||
if nil == baseValue.Value {
|
if nil == baseValue.Value {
|
||||||
baseValue.Value = av.GetAttributeViewDefaultValue(baseValue.ID, fieldID, itemID, baseValue.ValueType)
|
baseValue.Value = av.GetAttributeViewDefaultValue(baseValue.ID, fieldID, itemID, baseValue.ValueType, fieldDateAutoFill)
|
||||||
} else {
|
} else {
|
||||||
FillAttributeViewNilValue(baseValue.Value, baseValue.ValueType)
|
FillAttributeViewNilValue(baseValue.Value, baseValue.ValueType)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,11 @@ func RenderAttributeViewGallery(attrView *av.AttributeView, view *av.View, query
|
||||||
}
|
}
|
||||||
galleryCard.ID = cardID
|
galleryCard.ID = cardID
|
||||||
|
|
||||||
fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template)
|
filedDateAutoFill := false
|
||||||
|
if nil != field.Date {
|
||||||
|
filedDateAutoFill = field.Date.AutoFillNow
|
||||||
|
}
|
||||||
|
fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template, filedDateAutoFill)
|
||||||
galleryCard.Values = append(galleryCard.Values, fieldValue)
|
galleryCard.Values = append(galleryCard.Values, fieldValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,11 @@ func RenderAttributeViewTable(attrView *av.AttributeView, view *av.View, query s
|
||||||
}
|
}
|
||||||
tableRow.ID = rowID
|
tableRow.ID = rowID
|
||||||
|
|
||||||
fillAttributeViewBaseValue(tableCell.BaseValue, col.ID, rowID, col.NumberFormat, col.Template)
|
filedDateAutoFill := false
|
||||||
|
if nil != col.Date {
|
||||||
|
filedDateAutoFill = col.Date.AutoFillNow
|
||||||
|
}
|
||||||
|
fillAttributeViewBaseValue(tableCell.BaseValue, col.ID, rowID, col.NumberFormat, col.Template, filedDateAutoFill)
|
||||||
tableRow.Cells = append(tableRow.Cells, tableCell)
|
tableRow.Cells = append(tableRow.Cells, tableCell)
|
||||||
}
|
}
|
||||||
ret.Rows = append(ret.Rows, &tableRow)
|
ret.Rows = append(ret.Rows, &tableRow)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue