mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 08:21:11 +00:00 
			
		
		
		
	Use milestone deadline when sorting issues (#14551)
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. Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								95352e6bd5
							
						
					
				
			
			
				commit
				
					
						864f0c0447
					
				
			
		
					 1 changed files with 11 additions and 2 deletions
				
			
		| 
						 | 
					@ -1127,9 +1127,18 @@ func sortIssuesSession(sess *xorm.Session, sortType string, priorityRepoID int64
 | 
				
			||||||
		sess.Desc("issue.priority")
 | 
							sess.Desc("issue.priority")
 | 
				
			||||||
	case "nearduedate":
 | 
						case "nearduedate":
 | 
				
			||||||
		// 253370764800 is 01/01/9999 @ 12:00am (UTC)
 | 
							// 253370764800 is 01/01/9999 @ 12:00am (UTC)
 | 
				
			||||||
		sess.OrderBy("CASE WHEN issue.deadline_unix = 0 THEN 253370764800 ELSE issue.deadline_unix END ASC")
 | 
							sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id").
 | 
				
			||||||
 | 
								OrderBy("CASE " +
 | 
				
			||||||
 | 
									"WHEN issue.deadline_unix = 0 AND (milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL) THEN 253370764800 " +
 | 
				
			||||||
 | 
									"WHEN milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL THEN issue.deadline_unix " +
 | 
				
			||||||
 | 
									"WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " +
 | 
				
			||||||
 | 
									"ELSE issue.deadline_unix END ASC")
 | 
				
			||||||
	case "farduedate":
 | 
						case "farduedate":
 | 
				
			||||||
		sess.Desc("issue.deadline_unix")
 | 
							sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id").
 | 
				
			||||||
 | 
								OrderBy("CASE " +
 | 
				
			||||||
 | 
									"WHEN milestone.deadline_unix IS NULL THEN issue.deadline_unix " +
 | 
				
			||||||
 | 
									"WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " +
 | 
				
			||||||
 | 
									"ELSE issue.deadline_unix END DESC")
 | 
				
			||||||
	case "priorityrepo":
 | 
						case "priorityrepo":
 | 
				
			||||||
		sess.OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(priorityRepoID, 10) + " THEN 1 ELSE 2 END, issue.created_unix DESC")
 | 
							sess.OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(priorityRepoID, 10) + " THEN 1 ELSE 2 END, issue.created_unix DESC")
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue