mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-20 23:36:10 +01:00
🎨 Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
This commit is contained in:
parent
8ade9ddb5f
commit
41087fd483
1 changed files with 22 additions and 20 deletions
|
|
@ -147,29 +147,31 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
|
|||
|
||||
// TODO Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
|
||||
// 生成分组数据
|
||||
switch view.LayoutType {
|
||||
case av.LayoutTypeTable:
|
||||
table := sql.RenderAttributeViewTable(attrView, view, "")
|
||||
groupRows := map[string][]*av.TableRow{}
|
||||
for _, row := range table.Rows {
|
||||
value := row.GetValue(group.Field)
|
||||
switch group.Method {
|
||||
case av.GroupMethodValue:
|
||||
strVal := value.String(false)
|
||||
groupRows[strVal] = append(groupRows[strVal], row)
|
||||
}
|
||||
groupItems := map[string][]av.Item{}
|
||||
viewable := sql.RenderView(view, attrView, "")
|
||||
collection := viewable.(av.Collection)
|
||||
for _, item := range collection.GetItems() {
|
||||
value := item.GetValue(group.Field)
|
||||
switch group.Method {
|
||||
case av.GroupMethodValue:
|
||||
strVal := value.String(false)
|
||||
groupItems[strVal] = append(groupItems[strVal], item)
|
||||
}
|
||||
|
||||
for _, rows := range groupRows {
|
||||
v := av.NewTableView()
|
||||
}
|
||||
for _, items := range groupItems {
|
||||
var v *av.View
|
||||
switch view.LayoutType {
|
||||
case av.LayoutTypeTable:
|
||||
v = av.NewTableView()
|
||||
v.Table = av.NewLayoutTable()
|
||||
for _, row := range rows {
|
||||
v.GroupItemIDs = append(v.GroupItemIDs, row.ID)
|
||||
}
|
||||
view.Groups = append(view.Groups, v)
|
||||
case av.LayoutTypeGallery:
|
||||
v = av.NewGalleryView()
|
||||
v.Gallery = av.NewLayoutGallery()
|
||||
}
|
||||
case av.LayoutTypeGallery:
|
||||
|
||||
for _, item := range items {
|
||||
v.GroupItemIDs = append(v.GroupItemIDs, item.GetID())
|
||||
}
|
||||
view.Groups = append(view.Groups, v)
|
||||
}
|
||||
|
||||
err = av.SaveAttributeView(attrView)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue