Skip to content

Commit 4317b41

Browse files
committed
Add sort option recentclose for issues and pulls
1 parent 0d1d57c commit 4317b41

File tree

6 files changed

+164
-1
lines changed

6 files changed

+164
-1
lines changed

models/fixtures/issue.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,3 +372,57 @@
372372
created_unix: 1707270422
373373
updated_unix: 1707270422
374374
is_locked: false
375+
376+
-
377+
id: 23
378+
repo_id: 63
379+
index: 1
380+
poster_id: 40
381+
original_author_id: 0
382+
name: repo62 pull1
383+
content: this pr is created, merged and updated first
384+
milestone_id: 0
385+
priority: 0
386+
is_closed: true
387+
is_pull: true
388+
num_comments: 0
389+
created_unix: 1707270000
390+
updated_unix: 1707270001
391+
closed_unix: 1707270001
392+
is_locked: false
393+
394+
-
395+
id: 24
396+
repo_id: 63
397+
index: 2
398+
poster_id: 40
399+
original_author_id: 0
400+
name: repo62 pull2
401+
content: this pr is created and merged second but updated latest
402+
milestone_id: 0
403+
priority: 0
404+
is_closed: true
405+
is_pull: true
406+
num_comments: 0
407+
created_unix: 1707270001
408+
updated_unix: 1707279999
409+
closed_unix: 1707271000
410+
is_locked: false
411+
412+
-
413+
id: 25
414+
repo_id: 63
415+
index: 3
416+
poster_id: 40
417+
original_author_id: 0
418+
name: repo62 pull3
419+
content: this pr is created, merged latest but updated before merge
420+
milestone_id: 0
421+
priority: 0
422+
is_closed: true
423+
is_pull: true
424+
num_comments: 0
425+
created_unix: 1707279999
426+
updated_unix: 1707275555
427+
closed_unix: 1707279999
428+
is_locked: false

models/fixtures/pull_request.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,33 @@
117117
index: 1
118118
head_repo_id: 61
119119
base_repo_id: 61
120+
121+
-
122+
id: 11
123+
issue_id: 23
124+
type: 0 # gitea pull request
125+
index: 1
126+
head_repo_id: 63
127+
base_repo_id: 63
128+
has_merged: true
129+
merged_unix: 1707270001
130+
131+
-
132+
id: 12
133+
issue_id: 24
134+
type: 0 # gitea pull request
135+
index: 2
136+
head_repo_id: 63
137+
base_repo_id: 63
138+
has_merged: true
139+
merged_unix: 1707271000 # merged before someone commented again
140+
141+
-
142+
id: 13
143+
issue_id: 25
144+
type: 0 # gitea pull request
145+
index: 3
146+
head_repo_id: 63
147+
base_repo_id: 63
148+
has_merged: true
149+
merged_unix: 1707279999

models/fixtures/repository.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,3 +1786,34 @@
17861786
size: 0
17871787
is_fsck_enabled: true
17881788
close_issues_via_commit_in_any_branch: false
1789+
1790+
-
1791+
id: 63
1792+
owner_id: 42
1793+
owner_name: org42
1794+
lower_name: listprsort
1795+
name: listprsort
1796+
default_branch: master
1797+
num_watches: 0
1798+
num_stars: 0
1799+
num_forks: 0
1800+
num_issues: 0
1801+
num_closed_issues: 0
1802+
num_pulls: 3
1803+
num_closed_pulls: 3
1804+
num_milestones: 0
1805+
num_closed_milestones: 0
1806+
num_projects: 0
1807+
num_closed_projects: 0
1808+
is_private: false
1809+
is_empty: false
1810+
is_archived: false
1811+
is_mirror: false
1812+
status: 0
1813+
is_fork: false
1814+
fork_id: 0
1815+
is_template: false
1816+
template_id: 0
1817+
size: 0
1818+
is_fsck_enabled: true
1819+
close_issues_via_commit_in_any_branch: false

models/issues/issue_search.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ func applySorts(sess *xorm.Session, sortType string, priorityRepoID int64) {
8888
sess.Asc("issue.created_unix").Asc("issue.id")
8989
case "recentupdate":
9090
sess.Desc("issue.updated_unix").Desc("issue.created_unix").Desc("issue.id")
91+
case "recentclose":
92+
sess.Desc("issue.closed_unix").Desc("issue.created_unix").Desc("issue.id")
9193
case "leastupdate":
9294
sess.Asc("issue.updated_unix").Asc("issue.created_unix").Asc("issue.id")
9395
case "mostcomment":

models/issues/issue_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ func TestCountIssues(t *testing.T) {
378378
assert.NoError(t, unittest.PrepareTestDatabase())
379379
count, err := issues_model.CountIssues(db.DefaultContext, &issues_model.IssuesOptions{})
380380
assert.NoError(t, err)
381-
assert.EqualValues(t, 22, count)
381+
assert.EqualValues(t, 25, count)
382382
}
383383

384384
func TestIssueLoadAttributes(t *testing.T) {

models/issues/pull_test.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,52 @@ func TestPullRequestsNewest(t *testing.T) {
7676
}
7777
}
7878

79+
func TestPullRequestsRecentClosed(t *testing.T) {
80+
assert.NoError(t, unittest.PrepareTestDatabase())
81+
prs, _, err := issues_model.PullRequests(db.DefaultContext, 63, &issues_model.PullRequestsOptions{
82+
ListOptions: db.ListOptions{
83+
Page: 1,
84+
},
85+
State: "closed",
86+
SortType: "recentclose",
87+
})
88+
assert.NoError(t, err)
89+
90+
// Pull ID | Closed At. | Updated At
91+
// 11 | 1707270001 | 1707270001
92+
// 12 | 1707271000 | 1707279999
93+
// 13 | 1707279999 | 1707275555
94+
95+
if assert.Len(t, prs, 3) {
96+
assert.EqualValues(t, 13, prs[0].ID)
97+
assert.EqualValues(t, 12, prs[1].ID)
98+
assert.EqualValues(t, 11, prs[2].ID)
99+
}
100+
}
101+
102+
func TestPullRequestsRecentUpdate(t *testing.T) {
103+
assert.NoError(t, unittest.PrepareTestDatabase())
104+
prs, _, err := issues_model.PullRequests(db.DefaultContext, 63, &issues_model.PullRequestsOptions{
105+
ListOptions: db.ListOptions{
106+
Page: 1,
107+
},
108+
State: "closed",
109+
SortType: "recentupdate",
110+
})
111+
assert.NoError(t, err)
112+
113+
// Pull ID | Closed At. | Updated At
114+
// 11 | 1707270001 | 1707270001
115+
// 12 | 1707271000 | 1707279999
116+
// 13 | 1707279999 | 1707275555
117+
118+
if assert.Len(t, prs, 3) {
119+
assert.EqualValues(t, 12, prs[0].ID)
120+
assert.EqualValues(t, 13, prs[1].ID)
121+
assert.EqualValues(t, 11, prs[2].ID)
122+
}
123+
}
124+
79125
func TestLoadRequestedReviewers(t *testing.T) {
80126
assert.NoError(t, unittest.PrepareTestDatabase())
81127

0 commit comments

Comments
 (0)