From 194b88e2ebd0d36dc525154a2ca2e8462f47e149 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 24 Dec 2022 14:30:34 +0100 Subject: [PATCH] fix(tasks): don't reset the kanban bucket when updating a task and not providing one Resolves https://github.com/go-vikunja/api/issues/56 --- pkg/models/tasks.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/models/tasks.go b/pkg/models/tasks.go index 8d3ed0fdc6..f19edb2cf9 100644 --- a/pkg/models/tasks.go +++ b/pkg/models/tasks.go @@ -830,6 +830,11 @@ func setTaskBucket(s *xorm.Session, task *Task, originalTask *Task, doCheckBucke } } + if task.BucketID == 0 && originalTask != nil && originalTask.BucketID != 0 { + task.BucketID = originalTask.BucketID + } + + // Either no bucket was provided or the task was moved between lists if task.BucketID == 0 || (originalTask != nil && task.ListID != 0 && originalTask.ListID != task.ListID) { bucket, err = getDefaultBucket(s, task.ListID) if err != nil { @@ -1026,7 +1031,7 @@ func (t *Task) Update(s *xorm.Session, a web.Auth) (err error) { // When a repeating task is marked as done, we update all deadlines and reminders and set it as undone updateDone(&ot, t) - if err := setTaskBucket(s, t, &ot, t.BucketID != ot.BucketID); err != nil { + if err := setTaskBucket(s, t, &ot, t.BucketID != 0 && t.BucketID != ot.BucketID); err != nil { return err }