Issue and pull request filters on organization dashboard #14052 (#14072)

This commit is contained in:
Jimmy Praet 2021-01-03 18:29:12 +01:00 committed by GitHub
parent 44ff1d6a1e
commit 9cc5a89b8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 36 deletions

View file

@ -364,21 +364,17 @@ func Issues(ctx *context.Context) {
filterMode = models.FilterModeAll
)
if ctxUser.IsOrganization() {
viewType = ctx.Query("type")
switch viewType {
case "assigned":
filterMode = models.FilterModeAssign
case "created_by":
filterMode = models.FilterModeCreate
case "mentioned":
filterMode = models.FilterModeMention
case "your_repositories": // filterMode already set to All
default:
viewType = "your_repositories"
} else {
viewType = ctx.Query("type")
switch viewType {
case "assigned":
filterMode = models.FilterModeAssign
case "created_by":
filterMode = models.FilterModeCreate
case "mentioned":
filterMode = models.FilterModeMention
case "your_repositories": // filterMode already set to All
default:
viewType = "your_repositories"
}
}
page := ctx.QueryInt("page")
@ -453,11 +449,15 @@ func Issues(ctx *context.Context) {
case models.FilterModeAll:
opts.RepoIDs = userRepoIDs
case models.FilterModeAssign:
opts.AssigneeID = ctxUser.ID
opts.AssigneeID = ctx.User.ID
case models.FilterModeCreate:
opts.PosterID = ctxUser.ID
opts.PosterID = ctx.User.ID
case models.FilterModeMention:
opts.MentionedID = ctxUser.ID
opts.MentionedID = ctx.User.ID
}
if ctxUser.IsOrganization() {
opts.RepoIDs = userRepoIDs
}
var forceEmpty bool
@ -575,7 +575,7 @@ func Issues(ctx *context.Context) {
}
userIssueStatsOpts := models.UserIssueStatsOptions{
UserID: ctxUser.ID,
UserID: ctx.User.ID,
UserRepoIDs: userRepoIDs,
FilterMode: filterMode,
IsPull: isPullList,
@ -585,6 +585,9 @@ func Issues(ctx *context.Context) {
if len(repoIDs) > 0 {
userIssueStatsOpts.UserRepoIDs = repoIDs
}
if ctxUser.IsOrganization() {
userIssueStatsOpts.RepoIDs = userRepoIDs
}
userIssueStats, err := models.GetUserIssueStats(userIssueStatsOpts)
if err != nil {
ctx.ServerError("GetUserIssueStats User", err)
@ -594,7 +597,7 @@ func Issues(ctx *context.Context) {
var shownIssueStats *models.IssueStats
if !forceEmpty {
statsOpts := models.UserIssueStatsOptions{
UserID: ctxUser.ID,
UserID: ctx.User.ID,
UserRepoIDs: userRepoIDs,
FilterMode: filterMode,
IsPull: isPullList,
@ -604,6 +607,8 @@ func Issues(ctx *context.Context) {
}
if len(repoIDs) > 0 {
statsOpts.RepoIDs = repoIDs
} else if ctxUser.IsOrganization() {
statsOpts.RepoIDs = userRepoIDs
}
shownIssueStats, err = models.GetUserIssueStats(statsOpts)
if err != nil {
@ -616,15 +621,19 @@ func Issues(ctx *context.Context) {
var allIssueStats *models.IssueStats
if !forceEmpty {
allIssueStats, err = models.GetUserIssueStats(models.UserIssueStatsOptions{
UserID: ctxUser.ID,
allIssueStatsOpts := models.UserIssueStatsOptions{
UserID: ctx.User.ID,
UserRepoIDs: userRepoIDs,
FilterMode: filterMode,
IsPull: isPullList,
IsClosed: isShowClosed,
IssueIDs: issueIDsFromSearch,
LabelIDs: opts.LabelIDs,
})
}
if ctxUser.IsOrganization() {
allIssueStatsOpts.RepoIDs = userRepoIDs
}
allIssueStats, err = models.GetUserIssueStats(allIssueStatsOpts)
if err != nil {
ctx.ServerError("GetUserIssueStats All", err)
return