summaryrefslogtreecommitdiffstats
path: root/models/issue.go
diff options
context:
space:
mode:
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
}