fix(org): preserve group assignments when reordering pins
Some checks failed
Build and Release / Create Release (push) Has been cancelled
Build and Release / Build Binaries (amd64, linux, linux-latest) (push) Has been cancelled
Build and Release / Build Binaries (amd64, darwin, macos) (push) Has been cancelled
Build and Release / Build Binaries (arm64, darwin, macos) (push) Has been cancelled
Build and Release / Build Binaries (amd64, windows, windows-latest) (push) Has been cancelled
Build and Release / Build Binary (linux/arm64) (push) Has been cancelled
Build and Release / Unit Tests (push) Has been cancelled
Build and Release / Integration Tests (PostgreSQL) (push) Has been cancelled
Build and Release / Lint (push) Has been cancelled
Some checks failed
Build and Release / Create Release (push) Has been cancelled
Build and Release / Build Binaries (amd64, linux, linux-latest) (push) Has been cancelled
Build and Release / Build Binaries (amd64, darwin, macos) (push) Has been cancelled
Build and Release / Build Binaries (arm64, darwin, macos) (push) Has been cancelled
Build and Release / Build Binaries (amd64, windows, windows-latest) (push) Has been cancelled
Build and Release / Build Binary (linux/arm64) (push) Has been cancelled
Build and Release / Unit Tests (push) Has been cancelled
Build and Release / Integration Tests (PostgreSQL) (push) Has been cancelled
Build and Release / Lint (push) Has been cancelled
Fixes ReorderOrgPinnedRepos to only update display_order field, preserving existing group_id assignments. Uses MustCols to ensure zero values are properly updated (first item can have display_order=0). Previously, reordering would unintentionally clear group assignments.
This commit is contained in:
@@ -206,11 +206,12 @@ func ReorderOrgPinnedRepos(ctx context.Context, orgID int64, repoOrders []Pinned
|
||||
defer committer.Close()
|
||||
|
||||
for _, order := range repoOrders {
|
||||
// Use MustCols to ensure zero values are updated (display_order can be 0 for first item)
|
||||
// Only update display_order, not group_id (preserve existing group assignments)
|
||||
if _, err := db.GetEngine(ctx).
|
||||
Where("org_id = ? AND repo_id = ?", orgID, order.RepoID).
|
||||
Cols("group_id", "display_order").
|
||||
MustCols("display_order").
|
||||
Update(&OrgPinnedRepo{
|
||||
GroupID: order.GroupID,
|
||||
DisplayOrder: order.DisplayOrder,
|
||||
}); err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user