Fix bugs in issue dashboard stats (#3073)

This commit is contained in:
Ethan Koenig 2017-12-25 18:25:16 -05:00 committed by Lauris BH
parent fabf3f2fc2
commit 4c9341f689
7 changed files with 224 additions and 55 deletions

View file

@ -56,7 +56,7 @@ func ListIssues(ctx *context.APIContext) {
}
issues, err := models.Issues(&models.IssuesOptions{
RepoID: ctx.Repo.Repository.ID,
RepoIDs: []int64{ctx.Repo.Repository.ID},
Page: ctx.QueryInt("page"),
PageSize: setting.UI.IssuePagingNum,
IsClosed: isClosed,

View file

@ -190,8 +190,8 @@ func Issues(ctx *context.Context) {
issues = []*models.Issue{}
} else {
issues, err = models.Issues(&models.IssuesOptions{
RepoIDs: []int64{repo.ID},
AssigneeID: assigneeID,
RepoID: repo.ID,
PosterID: posterID,
MentionedID: mentionedID,
MilestoneID: milestoneID,

View file

@ -9,13 +9,14 @@ import (
"fmt"
"sort"
"github.com/Unknwon/paginater"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"github.com/Unknwon/com"
"github.com/Unknwon/paginater"
)
const (
@ -231,21 +232,30 @@ func Issues(ctx *context.Context) {
return
}
}
if len(userRepoIDs) <= 0 {
userRepoIDs = []int64{-1}
}
opts := &models.IssuesOptions{
RepoID: repoID,
IsClosed: util.OptionalBoolOf(isShowClosed),
IsPull: util.OptionalBoolOf(isPullList),
SortType: sortType,
}
if repoID > 0 {
opts.RepoIDs = []int64{repoID}
}
switch filterMode {
case models.FilterModeAll:
opts.RepoIDs = userRepoIDs
if repoID > 0 {
if !com.IsSliceContainsInt64(userRepoIDs, repoID) {
// force an empty result
opts.RepoIDs = []int64{-1}
}
} else {
opts.RepoIDs = userRepoIDs
}
case models.FilterModeAssign:
opts.AssigneeID = ctxUser.ID
case models.FilterModeCreate:
@ -308,7 +318,18 @@ func Issues(ctx *context.Context) {
issue.Repo = showReposMap[issue.RepoID]
}
issueStats := models.GetUserIssueStats(repoID, ctxUser.ID, userRepoIDs, filterMode, isPullList)
issueStats, err := models.GetUserIssueStats(models.UserIssueStatsOptions{
UserID: ctxUser.ID,
RepoID: repoID,
UserRepoIDs: userRepoIDs,
FilterMode: filterMode,
IsPull: isPullList,
IsClosed: isShowClosed,
})
if err != nil {
ctx.Handle(500, "GetUserIssueStats", err)
return
}
var total int
if !isShowClosed {