fix: make sure projects are correctly sorted
This commit is contained in:
parent
353279cbff
commit
db3c7aa8b0
@ -182,12 +182,6 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int,
|
|||||||
return nil, 0, 0, err
|
return nil, 0, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: I wonder if we could get rid of this extra loop?
|
|
||||||
allProjects := make(map[int64]*Project, len(prs))
|
|
||||||
for _, p := range prs {
|
|
||||||
allProjects[p.ID] = p
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////
|
/////////////////
|
||||||
// Saved Filters
|
// Saved Filters
|
||||||
|
|
||||||
@ -197,7 +191,7 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if savedFiltersProject != nil {
|
if savedFiltersProject != nil {
|
||||||
allProjects[savedFiltersProject.ID] = savedFiltersProject
|
prs = append(prs, savedFiltersProject)
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////
|
/////////////////
|
||||||
@ -210,12 +204,7 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int,
|
|||||||
//////////////////////////
|
//////////////////////////
|
||||||
// Putting it all together
|
// Putting it all together
|
||||||
|
|
||||||
projectsResult := []*Project{}
|
return prs, resultCount, totalItems, err
|
||||||
for _, p := range allProjects {
|
|
||||||
projectsResult = append(projectsResult, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
return projectsResult, resultCount, totalItems, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadOne gets one project by its ID
|
// ReadOne gets one project by its ID
|
||||||
|
@ -319,10 +319,12 @@ func TestProject_ReadAll(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, reflect.TypeOf(projects3).Kind(), reflect.Slice)
|
assert.Equal(t, reflect.TypeOf(projects3).Kind(), reflect.Slice)
|
||||||
ls := projects3.([]*Project)
|
ls := projects3.([]*Project)
|
||||||
assert.Equal(t, 23, len(ls))
|
assert.Equal(t, 25, len(ls))
|
||||||
assert.Equal(t, int64(3), ls[0].ID) // Project 3 has a position of 1 and should be sorted first
|
assert.Equal(t, int64(3), ls[0].ID) // Project 3 has a position of 1 and should be sorted first
|
||||||
assert.Equal(t, int64(1), ls[1].ID)
|
assert.Equal(t, int64(1), ls[1].ID)
|
||||||
assert.Equal(t, int64(6), ls[2].ID)
|
assert.Equal(t, int64(6), ls[2].ID)
|
||||||
|
assert.Equal(t, int64(-1), ls[23].ID)
|
||||||
|
assert.Equal(t, int64(-3), ls[24].ID)
|
||||||
_ = s.Close()
|
_ = s.Close()
|
||||||
})
|
})
|
||||||
t.Run("projects for nonexistant user", func(t *testing.T) {
|
t.Run("projects for nonexistant user", func(t *testing.T) {
|
||||||
@ -344,8 +346,10 @@ func TestProject_ReadAll(t *testing.T) {
|
|||||||
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
ls := projects3.([]*Project)
|
ls := projects3.([]*Project)
|
||||||
assert.Equal(t, 1, len(ls))
|
assert.Equal(t, 3, len(ls))
|
||||||
assert.Equal(t, int64(10), ls[0].ID)
|
assert.Equal(t, int64(10), ls[0].ID)
|
||||||
|
assert.Equal(t, int64(-1), ls[1].ID)
|
||||||
|
assert.Equal(t, int64(-3), ls[2].ID)
|
||||||
_ = s.Close()
|
_ = s.Close()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user