From d88d66581ddc351192e10d510e1fa7f8a9a4cf3e Mon Sep 17 00:00:00 2001 From: logikonline Date: Thu, 22 Jan 2026 15:42:02 -0500 Subject: [PATCH] fix(org): preserve group assignments when reordering pins 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. --- models/organization/org_pinned.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/models/organization/org_pinned.go b/models/organization/org_pinned.go index 6bf78e22ad..e1a05b2e9f 100644 --- a/models/organization/org_pinned.go +++ b/models/organization/org_pinned.go @@ -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