🐛 Database filtering does not work after change the field type https://github.com/siyuan-note/siyuan/issues/10519

This commit is contained in:
Daniel 2024-03-06 00:00:43 +08:00
parent b12a125730
commit 3207a5a8a1
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 18 additions and 24 deletions

View file

@ -225,8 +225,9 @@ func getAttributeViewFilterSort(c *gin.Context) {
} }
avID := arg["id"].(string) avID := arg["id"].(string)
blockID := arg["blockID"].(string)
filters, sorts := model.GetAttributeViewFilterSort(avID) filters, sorts := model.GetAttributeViewFilterSort(avID, blockID)
ret.Data = map[string]interface{}{ ret.Data = map[string]interface{}{
"filters": filters, "filters": filters,
"sorts": sorts, "sorts": sorts,

View file

@ -101,24 +101,31 @@ func GetAttributeViewPrimaryKeyValues(avID string, page, pageSize int) (attribut
return return
} }
func GetAttributeViewFilterSort(id string) (filters []*av.ViewFilter, sorts []*av.ViewSort) { func GetAttributeViewFilterSort(avID, blockID string) (filters []*av.ViewFilter, sorts []*av.ViewSort) {
waitForSyncingStorages() waitForSyncingStorages()
attrView, err := av.ParseAttributeView(id) attrView, err := av.ParseAttributeView(avID)
if nil != err { if nil != err {
logging.LogErrorf("parse attribute view [%s] failed: %s", id, err) logging.LogErrorf("parse attribute view [%s] failed: %s", avID, err)
return return
} }
view, err := getAttrViewViewByBlockID(attrView, blockID)
if nil == view {
view, err = attrView.GetCurrentView(attrView.ViewID)
if nil != err {
logging.LogErrorf("get current view failed: %s", err)
return
}
}
filters = []*av.ViewFilter{} filters = []*av.ViewFilter{}
sorts = []*av.ViewSort{} sorts = []*av.ViewSort{}
for _, view := range attrView.Views {
switch view.LayoutType { switch view.LayoutType {
case av.LayoutTypeTable: case av.LayoutTypeTable:
filters = view.Table.Filters filters = view.Table.Filters
sorts = view.Table.Sorts sorts = view.Table.Sorts
} }
}
return return
} }
@ -1911,20 +1918,6 @@ func addAttributeViewBlock(avID, blockID, previousBlockID, addingBlockID string,
return return
} }
func GetLastSortRow(rows []*av.TableRow) *av.TableRow {
for i := len(rows) - 1; i >= 0; i-- {
row := rows[i]
blockVal := row.GetBlockValue()
if nil != blockVal {
if !blockVal.IsEdited() {
continue
}
return row
}
}
return nil
}
func (tx *Transaction) doRemoveAttrViewBlock(operation *Operation) (ret *TxErr) { func (tx *Transaction) doRemoveAttrViewBlock(operation *Operation) (ret *TxErr) {
err := removeAttributeViewBlock(operation.SrcIDs, operation.AvID, tx) err := removeAttributeViewBlock(operation.SrcIDs, operation.AvID, tx)
if nil != err { if nil != err {