]> source.dussan.org Git - gitea.git/commitdiff
Fix approvals counting (#7757)
authorLunny Xiao <xiaolunwen@gmail.com>
Wed, 7 Aug 2019 04:22:41 +0000 (12:22 +0800)
committerLauris BH <lauris@nix.lv>
Wed, 7 Aug 2019 04:22:41 +0000 (07:22 +0300)
* fix approvals counting

* fix tests

* fmt

models/org_team.go
models/org_team_test.go

index 1786376d02c81832479e2087713de3641338c84e..799716679c4a9ca0a924f843706cbddbfddcbd2d 100644 (file)
@@ -760,11 +760,14 @@ func IsUserInTeams(userID int64, teamIDs []int64) (bool, error) {
 }
 
 // UsersInTeamsCount counts the number of users which are in userIDs and teamIDs
-func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (count int64, err error) {
-       if count, err = x.In("uid", userIDs).In("team_id", teamIDs).Count(new(TeamUser)); err != nil {
+func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (int64, error) {
+       var ids []int64
+       if err := x.In("uid", userIDs).In("team_id", teamIDs).
+               Table("team_user").
+               Cols("uid").GroupBy("uid").Find(&ids); err != nil {
                return 0, err
        }
-       return
+       return int64(len(ids)), nil
 }
 
 // ___________                  __________
index a81f9c07497c4c26237be10cfd1c0e971dca793d..06ab4637d8c2bc6377314431599c90a23ef96282 100644 (file)
@@ -370,7 +370,7 @@ func TestUsersInTeamsCount(t *testing.T) {
                assert.Equal(t, expected, count)
        }
 
-       test([]int64{2}, []int64{1, 2, 3, 4}, 2)
-       test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2)
-       test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3)
+       test([]int64{2}, []int64{1, 2, 3, 4}, 1)          // only userid 2
+       test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2)    // userid 2,4
+       test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) // userid 2,4,5
 }