Browse Source

fix item stat sorting to respect scope stat order.

master 0.1.5
Gisle Aune 2 years ago
parent
commit
7eb5f07299
  1. 22
      usecases/items/result.go

22
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
}
Loading…
Cancel
Save