Skip to content

Commit b2bc62b

Browse files

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

models/issues/issue_search.go

+13-6
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,18 @@ func applyMilestoneCondition(sess *xorm.Session, opts *IssuesOptions) *xorm.Sess
155155
return sess
156156
}
157157

158+
func applyProjectCondition(sess *xorm.Session, opts *IssuesOptions) *xorm.Session {
159+
if opts.ProjectID > 0 { // specific project
160+
sess.Join("INNER", "project_issue", "issue.id = project_issue.issue_id").
161+
And("project_issue.project_id=?", opts.ProjectID)
162+
} else if opts.ProjectID == db.NoConditionID { // show those that are in no project
163+
sess.And(builder.NotIn("issue.id", builder.Select("issue_id").From("project_issue").And(builder.Neq{"project_id": 0})))
164+
}
165+
// opts.ProjectID == 0 means all projects,
166+
// do not need to apply any condition
167+
return sess
168+
}
169+
158170
func applyRepoConditions(sess *xorm.Session, opts *IssuesOptions) *xorm.Session {
159171
if len(opts.RepoIDs) == 1 {
160172
opts.RepoCond = builder.Eq{"issue.repo_id": opts.RepoIDs[0]}
@@ -213,12 +225,7 @@ func applyConditions(sess *xorm.Session, opts *IssuesOptions) *xorm.Session {
213225
sess.And(builder.Lte{"issue.updated_unix": opts.UpdatedBeforeUnix})
214226
}
215227

216-
if opts.ProjectID > 0 {
217-
sess.Join("INNER", "project_issue", "issue.id = project_issue.issue_id").
218-
And("project_issue.project_id=?", opts.ProjectID)
219-
} else if opts.ProjectID == db.NoConditionID { // show those that are in no project
220-
sess.And(builder.NotIn("issue.id", builder.Select("issue_id").From("project_issue")))
221-
}
228+
applyProjectCondition(sess, opts)
222229

223230
if opts.ProjectBoardID != 0 {
224231
if opts.ProjectBoardID > 0 {

models/issues/issue_stats.go

+1-4
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,7 @@ func getIssueStatsChunk(opts *IssuesOptions, issueIDs []int64) (*IssueStats, err
133133

134134
applyMilestoneCondition(sess, opts)
135135

136-
if opts.ProjectID > 0 {
137-
sess.Join("INNER", "project_issue", "issue.id = project_issue.issue_id").
138-
And("project_issue.project_id=?", opts.ProjectID)
139-
}
136+
applyProjectCondition(sess, opts)
140137

141138
if opts.AssigneeID > 0 {
142139
applyAssigneeCondition(sess, opts.AssigneeID)

0 commit comments

Comments
 (0)