Order the user's organization list alphabetically

This commit is contained in:
Dennis Schubert 2025-02-19 15:39:33 +01:00
parent d81baf21e9
commit 392921f585
No known key found for this signature in database
GPG key ID: 5A0304BEA7966D7E
2 changed files with 15 additions and 0 deletions

View file

@ -99,6 +99,7 @@ func GetUserOrgsList(ctx context.Context, user *user_model.User) ([]*MinimalOrg,
if err := db.GetEngine(ctx).Select(columnsStr). if err := db.GetEngine(ctx).Select(columnsStr).
Table("user"). Table("user").
Where(builder.In("`user`.`id`", queryUserOrgIDs(user.ID, true))). Where(builder.In("`user`.`id`", queryUserOrgIDs(user.ID, true))).
OrderBy("`user`.lower_name ASC").
Find(&orgs); err != nil { Find(&orgs); err != nil {
return nil, err return nil, err
} }

View file

@ -4,6 +4,8 @@
package organization_test package organization_test
import ( import (
"slices"
"strings"
"testing" "testing"
"code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/db"
@ -74,3 +76,15 @@ func TestGetUserOrgsList(t *testing.T) {
assert.EqualValues(t, 2, orgs[0].NumRepos) assert.EqualValues(t, 2, orgs[0].NumRepos)
} }
} }
func TestGetUserOrgsListSorting(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
orgs, err := organization.GetUserOrgsList(db.DefaultContext, &user_model.User{ID: 1})
require.NoError(t, err)
isSorted := slices.IsSortedFunc(orgs, func(a, b *organization.MinimalOrg) int {
return strings.Compare(strings.ToLower(a.Name), strings.ToLower(b.Name))
})
assert.True(t, isSorted)
}