This commit is contained in:
Tyrone Yeh 2024-10-16 08:36:15 +08:00
parent 314adb1b5c
commit 13fa5f4fde
No known key found for this signature in database
GPG Key ID: AC8B5AA00375E170
2 changed files with 11 additions and 12 deletions

View File

@ -183,14 +183,13 @@ func applyMilestoneCondition(sess *xorm.Session, opts *IssuesOptions) {
}
func applyProjectCondition(sess *xorm.Session, opts *IssuesOptions) {
if opts.ProjectID > 0 { // specific project
sess.Join("INNER", "project_issue", "issue.id = project_issue.issue_id").
And("project_issue.project_id=?", opts.ProjectID)
} else if opts.ProjectID == db.NoConditionID { // show those that are in no project
sess.And(builder.NotIn("issue.id", builder.Select("issue_id").From("project_issue").And(builder.Neq{"project_id": 0})))
} else if len(opts.ProjectIDs) > 0 { // specific project
sess.Join("INNER", "project_issue", "issue.id = project_issue.issue_id").
In("project_issue.project_id", opts.ProjectIDs)
if len(opts.ProjectIDs) > 0 { // specific project
if opts.ProjectIDs[0] == db.NoConditionID { // show those that are in no project
sess.And(builder.NotIn("issue.id", builder.Select("issue_id").From("project_issue").And(builder.Neq{"project_id": 0})))
} else {
sess.Join("INNER", "project_issue", "issue.id = project_issue.issue_id").
In("project_issue.project_id", opts.ProjectIDs)
}
}
// opts.ProjectID == 0 means all projects,
// do not need to apply any condition

View File

@ -38,10 +38,10 @@ func ToSearchOptions(keyword string, opts *issues_model.IssuesOptions) *SearchOp
searchOpt.MilestoneIDs = opts.MilestoneIDs
}
if opts.ProjectID > 0 {
searchOpt.ProjectID = optional.Some(opts.ProjectID)
} else if opts.ProjectID == -1 { // FIXME: this is inconsistent from other places
searchOpt.ProjectID = optional.Some[int64](0) // Those issues with no project(projectid==0)
if len(opts.ProjectIDs) == 1 && opts.ProjectIDs[0] == db.NoConditionID {
searchOpt.ProjectIDs = []int64{0}
} else {
searchOpt.ProjectIDs = opts.ProjectIDs // Those issues with no project(projectid==0)
}
if opts.AssigneeID > 0 {