🎨 Improve database relation field filtering https://github.com/siyuan-note/siyuan/issues/11547

This commit is contained in:
Daniel 2024-05-27 20:38:05 +08:00
parent 3aee3f0d37
commit c4cd3734b3
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -165,10 +165,18 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, rowID st
}
}
if nil != value.Relation && KeyTypeRelation == value.Type && 0 < len(value.Relation.Contents) && nil != filter.Value && KeyTypeRelation == filter.Value.Type &&
if nil != value.Relation && KeyTypeRelation == value.Type && nil != filter.Value && KeyTypeRelation == filter.Value.Type &&
nil != filter.Value.Relation && 0 < len(filter.Value.Relation.BlockIDs) {
// 单独处理关联类型的比较
// 处理为空和不为空
switch filter.Operator {
case FilterOperatorIsEmpty:
return 0 == len(value.Relation.Contents)
case FilterOperatorIsNotEmpty:
return 0 != len(value.Relation.Contents)
}
for _, relationValue := range value.Relation.Contents {
filterValue := &Value{Type: KeyTypeBlock, Block: &ValueBlock{Content: filter.Value.Relation.BlockIDs[0]}}