Skip to content

Commit d0174d4

Browse files
authored
Fix bug about ListOptions and stars/watchers pagnation (#14556) (#14573)
* Fix bug about ListOptions and stars/watchers pagnation * fix unit test
1 parent da7a525 commit d0174d4

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

models/commit_status_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func TestGetCommitStatuses(t *testing.T) {
1818

1919
sha1 := "1234123412341234123412341234123412341234"
2020

21-
statuses, maxResults, err := GetCommitStatuses(repo1, sha1, &CommitStatusOptions{})
21+
statuses, maxResults, err := GetCommitStatuses(repo1, sha1, &CommitStatusOptions{ListOptions: ListOptions{Page: 1, PageSize: 50}})
2222
assert.NoError(t, err)
2323
assert.Equal(t, int(maxResults), 5)
2424
assert.Len(t, statuses, 5)

models/list_options.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ type ListOptions struct {
1616
Page int // start from 1
1717
}
1818

19-
func (opts ListOptions) getPaginatedSession() *xorm.Session {
19+
func (opts *ListOptions) getPaginatedSession() *xorm.Session {
2020
opts.setDefaultValues()
2121

2222
return x.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
2323
}
2424

25-
func (opts ListOptions) setSessionPagination(sess *xorm.Session) *xorm.Session {
25+
func (opts *ListOptions) setSessionPagination(sess *xorm.Session) *xorm.Session {
2626
opts.setDefaultValues()
2727

2828
if opts.PageSize <= 0 {
@@ -31,21 +31,21 @@ func (opts ListOptions) setSessionPagination(sess *xorm.Session) *xorm.Session {
3131
return sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
3232
}
3333

34-
func (opts ListOptions) setEnginePagination(e Engine) Engine {
34+
func (opts *ListOptions) setEnginePagination(e Engine) Engine {
3535
opts.setDefaultValues()
3636

3737
return e.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
3838
}
3939

4040
// GetStartEnd returns the start and end of the ListOptions
41-
func (opts ListOptions) GetStartEnd() (start, end int) {
41+
func (opts *ListOptions) GetStartEnd() (start, end int) {
4242
opts.setDefaultValues()
4343
start = (opts.Page - 1) * opts.PageSize
4444
end = start + opts.Page
4545
return
4646
}
4747

48-
func (opts ListOptions) setDefaultValues() {
48+
func (opts *ListOptions) setDefaultValues() {
4949
if opts.PageSize <= 0 {
5050
opts.PageSize = setting.API.DefaultPagingNum
5151
}

routers/repo/view.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,10 @@ func RenderUserCards(ctx *context.Context, total int, getter func(opts models.Li
692692
pager := context.NewPagination(total, models.ItemsPerPage, page, 5)
693693
ctx.Data["Page"] = pager
694694

695-
items, err := getter(models.ListOptions{Page: pager.Paginater.Current()})
695+
items, err := getter(models.ListOptions{
696+
Page: pager.Paginater.Current(),
697+
PageSize: models.ItemsPerPage,
698+
})
696699
if err != nil {
697700
ctx.ServerError("getter", err)
698701
return
@@ -723,6 +726,7 @@ func Stars(ctx *context.Context) {
723726
func Forks(ctx *context.Context) {
724727
ctx.Data["Title"] = ctx.Tr("repos.forks")
725728

729+
// TODO: need pagination
726730
forks, err := ctx.Repo.Repository.GetForks(models.ListOptions{})
727731
if err != nil {
728732
ctx.ServerError("GetForks", err)

0 commit comments

Comments
 (0)