diff options
Diffstat (limited to 'models/issue.go')
-rw-r--r-- | models/issue.go | 10 |
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 } |