mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 23:54:25 +01:00 
			
		
		
		
	Fix bug about ListOptions and stars/watchers pagnation (#14556)
* Fix bug about ListOptions and stars/watchers pagnation * fix unit test Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
		
							parent
							
								
									80b1d02b2f
								
							
						
					
					
						commit
						3537d80088
					
				@ -18,7 +18,7 @@ func TestGetCommitStatuses(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	sha1 := "1234123412341234123412341234123412341234"
 | 
			
		||||
 | 
			
		||||
	statuses, maxResults, err := GetCommitStatuses(repo1, sha1, &CommitStatusOptions{})
 | 
			
		||||
	statuses, maxResults, err := GetCommitStatuses(repo1, sha1, &CommitStatusOptions{ListOptions: ListOptions{Page: 1, PageSize: 50}})
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.Equal(t, int(maxResults), 5)
 | 
			
		||||
	assert.Len(t, statuses, 5)
 | 
			
		||||
 | 
			
		||||
@ -16,13 +16,13 @@ type ListOptions struct {
 | 
			
		||||
	Page     int // start from 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (opts ListOptions) getPaginatedSession() *xorm.Session {
 | 
			
		||||
func (opts *ListOptions) getPaginatedSession() *xorm.Session {
 | 
			
		||||
	opts.setDefaultValues()
 | 
			
		||||
 | 
			
		||||
	return x.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (opts ListOptions) setSessionPagination(sess *xorm.Session) *xorm.Session {
 | 
			
		||||
func (opts *ListOptions) setSessionPagination(sess *xorm.Session) *xorm.Session {
 | 
			
		||||
	opts.setDefaultValues()
 | 
			
		||||
 | 
			
		||||
	if opts.PageSize <= 0 {
 | 
			
		||||
@ -31,21 +31,21 @@ func (opts ListOptions) setSessionPagination(sess *xorm.Session) *xorm.Session {
 | 
			
		||||
	return sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (opts ListOptions) setEnginePagination(e Engine) Engine {
 | 
			
		||||
func (opts *ListOptions) setEnginePagination(e Engine) Engine {
 | 
			
		||||
	opts.setDefaultValues()
 | 
			
		||||
 | 
			
		||||
	return e.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetStartEnd returns the start and end of the ListOptions
 | 
			
		||||
func (opts ListOptions) GetStartEnd() (start, end int) {
 | 
			
		||||
func (opts *ListOptions) GetStartEnd() (start, end int) {
 | 
			
		||||
	opts.setDefaultValues()
 | 
			
		||||
	start = (opts.Page - 1) * opts.PageSize
 | 
			
		||||
	end = start + opts.Page
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (opts ListOptions) setDefaultValues() {
 | 
			
		||||
func (opts *ListOptions) setDefaultValues() {
 | 
			
		||||
	if opts.PageSize <= 0 {
 | 
			
		||||
		opts.PageSize = setting.API.DefaultPagingNum
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -713,7 +713,10 @@ func RenderUserCards(ctx *context.Context, total int, getter func(opts models.Li
 | 
			
		||||
	pager := context.NewPagination(total, models.ItemsPerPage, page, 5)
 | 
			
		||||
	ctx.Data["Page"] = pager
 | 
			
		||||
 | 
			
		||||
	items, err := getter(models.ListOptions{Page: pager.Paginater.Current()})
 | 
			
		||||
	items, err := getter(models.ListOptions{
 | 
			
		||||
		Page:     pager.Paginater.Current(),
 | 
			
		||||
		PageSize: models.ItemsPerPage,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("getter", err)
 | 
			
		||||
		return
 | 
			
		||||
@ -744,6 +747,7 @@ func Stars(ctx *context.Context) {
 | 
			
		||||
func Forks(ctx *context.Context) {
 | 
			
		||||
	ctx.Data["Title"] = ctx.Tr("repos.forks")
 | 
			
		||||
 | 
			
		||||
	// TODO: need pagination
 | 
			
		||||
	forks, err := ctx.Repo.Repository.GetForks(models.ListOptions{})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("GetForks", err)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user