From 7eb5f07299483611cd835ed48c86644806afeff6 Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Sat, 2 Jul 2022 14:04:46 +0200 Subject: [PATCH] fix item stat sorting to respect scope stat order. --- usecases/items/result.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/usecases/items/result.go b/usecases/items/result.go index 76fe372..fbe8595 100644 --- a/usecases/items/result.go +++ b/usecases/items/result.go @@ -3,7 +3,6 @@ package items import ( "git.aiterp.net/stufflog3/stufflog3/entities" "git.aiterp.net/stufflog3/stufflog3/usecases/scopes" - "sort" ) type Result struct { @@ -53,13 +52,22 @@ func (r *Result) AddStat(scope scopes.Result, stat entities.ItemStat) { Acquired: stat.Acquired, Required: stat.Required, }) - r.SortStats() + r.SortStats(scope) } -func (r *Result) SortStats() { - sort.Slice(r.Stats, func(i, j int) bool { - return r.Stats[i].Name < r.Stats[j].Name - }) +func (r *Result) SortStats(scope scopes.Result) { + sortedStats := make([]ResultStat, 0, len(r.Stats)) + + for _, scopeStat := range scope.Stats { + for _, itemStat := range r.Stats { + if itemStat.ID == scopeStat.ID { + sortedStats = append(sortedStats, itemStat) + break + } + } + } + + r.Stats = sortedStats } func (r *Result) RemoveStat(id int) { @@ -112,7 +120,7 @@ func generateResult(item entities.Item, scope scopes.Result, progresses []entiti } } - res.SortStats() + res.SortStats(scope) return res }