aboutsummaryrefslogtreecommitdiffstats
path: root/models/issue.go
diff options
context:
space:
mode:
authorElena Neuschild <eneuschild@gmail.com>2021-01-13 05:19:17 +0100
committerGitHub <noreply@github.com>2021-01-12 23:19:17 -0500
commit564030336dbfe1227ec458ecdedc0cfabdd4c1cc (patch)
tree7311fc29a8ed0c112a7891a11c34fbf76d9ad0eb /models/issue.go
parent81467e6f35f343b911c09f746deca869a48da4c8 (diff)
downloadgitea-564030336dbfe1227ec458ecdedc0cfabdd4c1cc.tar.gz
gitea-564030336dbfe1227ec458ecdedc0cfabdd4c1cc.zip
Issues overview should not show issues from archived repos (#13220)
* Add lots of comments to user.Issues() * Answered some questions from comments * fix typo in comment * Refac user.Issues(): add func repoIDs * Refac user.Issues(): add func userRepoIDs * Refac user.Issues(): add func issueIDsFromSearch * Refac user.Issues(): improve error handling * Refac user.Issues(): add inline documentation and move variable declarations closer to their usages * Refac user.Issues(): add func repoIDMap * Refac user.Issues(): cleanup * Refac: Separate Issues from Pulls during routing * fix typo in comment * Adapt Unittests to Refactoring * Issue13171: Issue and PR Overviews now ignore archived Repositories * changed some verbatim SQL conditions to builder.Eq * models/issue.go: use OptionalBool properly Co-authored-by: 6543 <6543@obermui.de> * Use IsArchived rather than ExcludeArchivedRepos * fixed broken test after merge * added nil check * Added Unit Test securing Issue 13171 fix * Improved IsArchived filtering in issue.GetUserIssueStats * Removed unused func * Added grouping to avoid returning duplicate repo IDs Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Gitea <gitea@fake.local> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'models/issue.go')
-rw-r--r--models/issue.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/models/issue.go b/models/issue.go
index 18d01d57d4..b517f334c4 100644
--- a/models/issue.go
+++ b/models/issue.go
@@ -1104,6 +1104,7 @@ type IssuesOptions struct {
UpdatedBeforeUnix int64
// prioritize issues from this repo
PriorityRepoID int64
+ IsArchived util.OptionalBool
}
// sortIssuesSession sort an issues-related session based on the provided
@@ -1207,6 +1208,10 @@ func (opts *IssuesOptions) setupSession(sess *xorm.Session) {
sess.And("issue.is_pull=?", false)
}
+ if opts.IsArchived != util.OptionalBoolNone {
+ sess.Join("INNER", "repository", "issue.repo_id = repository.id").And(builder.Eq{"repository.is_archived": opts.IsArchived.IsTrue()})
+ }
+
if opts.LabelIDs != nil {
for i, labelID := range opts.LabelIDs {
if labelID > 0 {
@@ -1501,6 +1506,7 @@ type UserIssueStatsOptions struct {
IsPull bool
IsClosed bool
IssueIDs []int64
+ IsArchived util.OptionalBool
LabelIDs []int64
}
@@ -1524,6 +1530,10 @@ func GetUserIssueStats(opts UserIssueStatsOptions) (*IssueStats, error) {
s.Join("INNER", "issue_label", "issue_label.issue_id = issue.id").
In("issue_label.label_id", opts.LabelIDs)
}
+ if opts.IsArchived != util.OptionalBoolNone {
+ s.Join("INNER", "repository", "issue.repo_id = repository.id").
+ And(builder.Eq{"repository.is_archived": opts.IsArchived.IsTrue()})
+ }
return s
}