add subtraction of progress from before project's startTime.
continuous-integration/drone/push Build is passing

This commit is contained in:
2021-12-03 11:55:58 +01:00
parent 9791dfaec8
commit 2807094971
6 changed files with 74 additions and 10 deletions
+23 -5
View File
@@ -234,7 +234,7 @@ func (l *Loader) FindProject(ctx context.Context, id string) (*models.ProjectRes
if project.UserID != auth.UserID(ctx) {
return nil, slerrors.NotFound("Goal")
}
result := &models.ProjectResult{Project: *project}
result := &models.ProjectResult{Project: *project, Subtractions: []models.ProjectSubtraction{}}
tasks, err := l.DB.Tasks().List(ctx, models.TaskFilter{
UserID: auth.UserID(ctx),
@@ -301,10 +301,19 @@ func (l *Loader) FindProject(ctx context.Context, id string) (*models.ProjectRes
}
for _, log := range result.Tasks[i].Logs {
if project.StartTime != nil && log.LoggedTime.Before(*project.StartTime) {
continue
result.Subtractions = append(result.Subtractions, models.ProjectSubtraction{
Item: *result.Tasks[i].Item,
Amount: log.ItemAmount,
})
if log.SecondaryItemID != nil {
result.Subtractions = append(result.Subtractions, models.ProjectSubtraction{
Item: *log.SecondaryItem,
Amount: log.SecondaryItemAmount,
})
}
}
result.Tasks[i].CompletedAmount += log.Amount(result.Tasks[i].ItemID)
result.Tasks[i].CompletedAmount += log.Amount(log.ItemID)
}
}
@@ -359,7 +368,7 @@ func (l *Loader) ListProjects(ctx context.Context, filter models.ProjectFilter)
results := make([]*models.ProjectResult, len(projects))
for i, project := range projects {
results[i] = &models.ProjectResult{Project: *project}
results[i] = &models.ProjectResult{Project: *project, Subtractions: []models.ProjectSubtraction{}}
results[i].Tasks = make([]*models.TaskResult, 0, 16)
for _, task := range tasks {
if task.ProjectID != project.ID {
@@ -408,7 +417,16 @@ func (l *Loader) ListProjects(ctx context.Context, filter models.ProjectFilter)
}
for _, log := range taskResult.Logs {
if project.StartTime != nil && log.LoggedTime.Before(*project.StartTime) {
continue
results[i].Subtractions = append(results[i].Subtractions, models.ProjectSubtraction{
Item: *taskResult.Item,
Amount: log.ItemAmount,
})
if log.SecondaryItem != nil {
results[i].Subtractions = append(results[i].Subtractions, models.ProjectSubtraction{
Item: *log.SecondaryItem,
Amount: log.SecondaryItemAmount,
})
}
}
taskResult.CompletedAmount += log.Amount(taskResult.ItemID)