@@ -32,7 +32,7 @@ type IssuesOptions struct { //nolint
3232 ReviewedID int64
3333 SubscriberID int64
3434 MilestoneIDs []int64
35- ProjectID int64
35+ ProjectIDs [] int64
3636 ProjectColumnID int64
3737 IsClosed optional.Option [bool ]
3838 IsPull optional.Option [bool ]
@@ -158,11 +158,11 @@ func applyMilestoneCondition(sess *xorm.Session, opts *IssuesOptions) *xorm.Sess
158158}
159159
160160func applyProjectCondition (sess * xorm.Session , opts * IssuesOptions ) * xorm.Session {
161- if opts .ProjectID > 0 { // specific project
162- sess .Join ("INNER" , "project_issue" , "issue.id = project_issue.issue_id" ).
163- And ("project_issue.project_id=?" , opts .ProjectID )
164- } else if opts .ProjectID == db .NoConditionID { // show those that are in no project
161+ if len (opts .ProjectIDs ) == 1 && opts .ProjectIDs [0 ] == db .NoConditionID { // show those that are in no project
165162 sess .And (builder .NotIn ("issue.id" , builder .Select ("issue_id" ).From ("project_issue" ).And (builder.Neq {"project_id" : 0 })))
163+ } else if len (opts .ProjectIDs ) > 0 { // specific project
164+ sess .Join ("INNER" , "project_issue" , "issue.id = project_issue.issue_id" ).
165+ In ("project_issue.project_id" , opts .ProjectIDs )
166166 }
167167 // opts.ProjectID == 0 means all projects,
168168 // do not need to apply any condition
@@ -174,8 +174,8 @@ func applyProjectColumnCondition(sess *xorm.Session, opts *IssuesOptions) *xorm.
174174 // do not need to apply any condition
175175 if opts .ProjectColumnID > 0 {
176176 sess .In ("issue.id" , builder .Select ("issue_id" ).From ("project_issue" ).Where (builder.Eq {"project_board_id" : opts .ProjectColumnID }))
177- } else if opts .ProjectID > 0 {
178- sess .In ("issue.id" , builder .Select ("issue_id" ).From ("project_issue" ).Where (builder.Eq {"project_board_id" : 0 , "project_id" : opts .ProjectID } ))
177+ } else if len ( opts .ProjectIDs ) > 0 {
178+ sess .In ("issue.id" , builder .Select ("issue_id" ).From ("project_issue" ).Where (builder.Eq {"project_board_id" : 0 }). And ( builder . In ( "project_id" , opts .ProjectIDs ) ))
179179 } else if opts .ProjectColumnID == db .NoConditionID {
180180 sess .In ("issue.id" , builder .Select ("issue_id" ).From ("project_issue" ).Where (builder.Eq {"project_board_id" : 0 }))
181181 }
0 commit comments