From 00218bb817e0faa073054be2295d72a127d3916b Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Tue, 5 Jan 2021 21:23:05 +0100 Subject: [PATCH] add item to log entries. --- models/log.go | 1 + services/loader.go | 19 +++++++++++++++++++ svelte-ui/src/components/LogEntry.svelte | 21 ++++++++++++++++++++- svelte-ui/src/models/log.ts | 2 ++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/models/log.go b/models/log.go index 881f5ac..24b2cc5 100644 --- a/models/log.go +++ b/models/log.go @@ -31,6 +31,7 @@ type LogUpdate struct { type LogResult struct { Log Task *Task `json:"task"` + Item *Item `json:"item"` } type LogFilter struct { diff --git a/services/loader.go b/services/loader.go index 37acc64..91f3278 100644 --- a/services/loader.go +++ b/services/loader.go @@ -127,6 +127,7 @@ func (l *Loader) FindLog(ctx context.Context, id string) (*models.LogResult, err } result.Task, _ = l.DB.Tasks().Find(ctx, id) + result.Item, _ = l.DB.Items().Find(ctx, log.ItemID) return result, nil } @@ -139,8 +140,10 @@ func (l *Loader) ListLogs(ctx context.Context, filter models.LogFilter) ([]*mode } taskIDs := stringset.New() + itemIDs := stringset.New() for _, log := range logs { taskIDs.Add(log.TaskID) + itemIDs.Add(log.ItemID) } tasks, err := l.DB.Tasks().List(ctx, models.TaskFilter{ UserID: auth.UserID(ctx), @@ -149,6 +152,13 @@ func (l *Loader) ListLogs(ctx context.Context, filter models.LogFilter) ([]*mode if err != nil { return nil, err } + items, err := l.DB.Items().List(ctx, models.ItemFilter{ + UserID: auth.UserID(ctx), + IDs: itemIDs.Strings(), + }) + if err != nil { + return nil, err + } results := make([]*models.LogResult, len(logs)) for i, log := range logs { @@ -163,6 +173,13 @@ func (l *Loader) ListLogs(ctx context.Context, filter models.LogFilter) ([]*mode break } } + + for _, item := range items { + if item.ID == log.ItemID { + results[i].Item = item + break + } + } } return results, nil @@ -495,6 +512,8 @@ func (l *Loader) populateGoals(ctx context.Context, goal *models.Goal) (*models. result.CompletedAmount += item.GroupWeight break } + + resultLog.Item = &item.Item } break diff --git a/svelte-ui/src/components/LogEntry.svelte b/svelte-ui/src/components/LogEntry.svelte index 9437ca2..e5880fe 100644 --- a/svelte-ui/src/components/LogEntry.svelte +++ b/svelte-ui/src/components/LogEntry.svelte @@ -29,7 +29,12 @@

{log.description}

- +
+
+ +
+
{log.item.name} ({log.item.groupWeight})
+
@@ -92,4 +97,18 @@ div.log { padding: 0.25em 1ch; } + + div.item { + display: flex; + flex-direction: row; + margin-top: 0.25em; + margin-bottom: 0em; + font-size: 0.75em; + } + div.item div.item-icon { + padding: 0.25em 0.5ch 0.25em 0; + } + div.item div.item-name { + padding: 0.125em; + } diff --git a/svelte-ui/src/models/log.ts b/svelte-ui/src/models/log.ts index 474092c..b2ad3f7 100644 --- a/svelte-ui/src/models/log.ts +++ b/svelte-ui/src/models/log.ts @@ -1,3 +1,4 @@ +import type Item from "./item"; import type Task from "./task"; export default interface Log { @@ -16,6 +17,7 @@ export interface LogFilter { export interface LogResult extends Log { task: Task + item: Item } export interface LogInput {