diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index ee9db4970..4b2e80d7b 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -2418,6 +2418,7 @@ func (tx *Transaction) doDuplicateAttrViewView(operation *Operation) (ret *TxErr view.HideAttrViewName = masterView.HideAttrViewName view.Desc = masterView.Desc view.LayoutType = masterView.LayoutType + view.PageSize = masterView.PageSize for _, filter := range masterView.Filters { view.Filters = append(view.Filters, &av.ViewFilter{ @@ -2436,16 +2437,6 @@ func (tx *Transaction) doDuplicateAttrViewView(operation *Operation) (ret *TxErr }) } - if nil != masterView.Group { - view.Group = &av.ViewGroup{} - if copyErr := copier.Copy(view.Group, masterView.Group); nil != copyErr { - logging.LogErrorf("copy group failed: %s", copyErr) - return &TxErr{code: TxErrHandleAttributeView, id: avID, msg: copyErr.Error()} - } - } - - view.PageSize = masterView.PageSize - switch masterView.LayoutType { case av.LayoutTypeTable: for _, col := range masterView.Table.Columns { @@ -2487,6 +2478,17 @@ func (tx *Transaction) doDuplicateAttrViewView(operation *Operation) (ret *TxErr view.ItemIDs = masterView.ItemIDs + if nil != masterView.Group { + view.Group = &av.ViewGroup{} + if copyErr := copier.Copy(view.Group, masterView.Group); nil != copyErr { + logging.LogErrorf("copy group failed: %s", copyErr) + return &TxErr{code: TxErrHandleAttributeView, id: avID, msg: copyErr.Error()} + } + + view.GroupItemIDs = masterView.GroupItemIDs + regenAttrViewGroups(attrView, "force") + } + if err = av.SaveAttributeView(attrView); err != nil { logging.LogErrorf("save attribute view [%s] failed: %s", avID, err) return &TxErr{code: TxErrHandleAttributeView, msg: err.Error(), id: avID}