Skip to content

Commit b3e76bf

Browse files
committed
Use milestone deadline when sorting issues
When sorting issues by deadline, the deadline of the milestone the issue is attached to wasn't taken into account. It have been changed and the nearest deadline is taken into account for sorting.
1 parent 1737a76 commit b3e76bf

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

models/issue.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,9 +1126,18 @@ func sortIssuesSession(sess *xorm.Session, sortType string, priorityRepoID int64
11261126
sess.Desc("issue.priority")
11271127
case "nearduedate":
11281128
// 253370764800 is 01/01/9999 @ 12:00am (UTC)
1129-
sess.OrderBy("CASE WHEN issue.deadline_unix = 0 THEN 253370764800 ELSE issue.deadline_unix END ASC")
1129+
sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id").
1130+
OrderBy("CASE " +
1131+
"WHEN issue.deadline_unix = 0 AND (milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL) THEN 253370764800 " +
1132+
"WHEN milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL THEN issue.deadline_unix " +
1133+
"WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " +
1134+
"ELSE issue.deadline_unix END ASC")
11301135
case "farduedate":
1131-
sess.Desc("issue.deadline_unix")
1136+
sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id").
1137+
OrderBy("CASE " +
1138+
"WHEN milestone.deadline_unix IS NULL THEN issue.deadline_unix " +
1139+
"WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " +
1140+
"ELSE issue.deadline_unix END DESC")
11321141
case "priorityrepo":
11331142
sess.OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(priorityRepoID, 10) + " THEN 1 ELSE 2 END, issue.created_unix DESC")
11341143
default:

0 commit comments

Comments
 (0)