diff --git a/pkg/models/project.go b/pkg/models/project.go index 2c6482426..5cf9ee107 100644 --- a/pkg/models/project.go +++ b/pkg/models/project.go @@ -182,12 +182,6 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int, 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 @@ -197,7 +191,7 @@ func (p *Project) ReadAll(s *xorm.Session, a web.Auth, search string, page int, } 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 - projectsResult := []*Project{} - for _, p := range allProjects { - projectsResult = append(projectsResult, p) - } - - return projectsResult, resultCount, totalItems, err + return prs, resultCount, totalItems, err } // ReadOne gets one project by its ID diff --git a/pkg/models/project_test.go b/pkg/models/project_test.go index f40fd5fe2..c051c194b 100644 --- a/pkg/models/project_test.go +++ b/pkg/models/project_test.go @@ -319,10 +319,12 @@ func TestProject_ReadAll(t *testing.T) { assert.NoError(t, err) assert.Equal(t, reflect.TypeOf(projects3).Kind(), reflect.Slice) 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(1), ls[1].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() }) t.Run("projects for nonexistant user", func(t *testing.T) { @@ -344,8 +346,10 @@ func TestProject_ReadAll(t *testing.T) { assert.NoError(t, err) 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(-1), ls[1].ID) + assert.Equal(t, int64(-3), ls[2].ID) _ = s.Close() }) }