Browse Source

fix coarse affecting stat options in created item, change sorting of requirements.

master
Gisle Aune 2 years ago
parent
commit
d114f0d38c
  1. 4
      frontend/src/lib/components/project/RequirementSection.svelte
  2. 24
      usecases/projects/result.go

4
frontend/src/lib/components/project/RequirementSection.svelte

@ -24,7 +24,9 @@
</OptionsRow>
<LabeledProgressRow>
{#each requirement.stats as stat (stat.id)}
<LabeledProgress count={stat.acquired} target={stat.required} name={stat.name} />
{#if !requirement.isCoarse || stat.required > 0}
<LabeledProgress count={stat.acquired} target={stat.required} name={stat.name} />
{/if}
{/each}
</LabeledProgressRow>
{#each requirement.items as item (item.id)}

24
usecases/projects/result.go

@ -6,6 +6,7 @@ import (
"git.aiterp.net/stufflog3/stufflog3/usecases/items"
"git.aiterp.net/stufflog3/stufflog3/usecases/scopes"
"math"
"sort"
"time"
)
@ -196,16 +197,29 @@ func generateRequirementResult(req entities.Requirement, scope scopes.Result, re
resReq.Items = append(resReq.Items, item)
}
// Sort items so that they're in order of created, with acquired items being in order of acquired below.
sort.Slice(resReq.Items, func(i, j int) bool {
ii := resReq.Items[i]
ij := resReq.Items[j]
if ii.AcquiredTime != nil && ij.AcquiredTime != nil {
return ii.AcquiredTime.Before(*ij.AcquiredTime)
} else if ii.AcquiredTime != nil && ij.AcquiredTime == nil {
return false
} else if ii.AcquiredTime == nil && ij.AcquiredTime != nil {
return true
}
return ii.CreatedTime.Before(ij.CreatedTime)
})
for _, stat := range scope.Stats {
if rs := resStats[stat.ID]; rs != nil && rs.Required > 0 {
resReq.Stats = append(resReq.Stats, *rs)
}
}
if !req.IsCoarse {
for _, stat := range scope.Stats {
if rs := resStats[stat.ID]; rs != nil && rs.Required == 0 {
resReq.Stats = append(resReq.Stats, *rs)
}
for _, stat := range scope.Stats {
if rs := resStats[stat.ID]; rs != nil && rs.Required == 0 {
resReq.Stats = append(resReq.Stats, *rs)
}
}

Loading…
Cancel
Save