Fix moving repeating tasks to the done bucket
This commit is contained in:
parent
2547de59ae
commit
6e5a9868f5
2 changed files with 25 additions and 3 deletions
|
@ -954,14 +954,14 @@ func (t *Task) Update(s *xorm.Session, a web.Auth) (err error) {
|
||||||
"repeat_mode",
|
"repeat_mode",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When a repeating task is marked as done, we update all deadlines and reminders and set it as undone
|
||||||
|
updateDone(&ot, t)
|
||||||
|
|
||||||
err = setTaskBucket(s, t, &ot, t.BucketID != ot.BucketID)
|
err = setTaskBucket(s, t, &ot, t.BucketID != ot.BucketID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// When a repeating task is marked as done, we update all deadlines and reminders and set it as undone
|
|
||||||
updateDone(&ot, t)
|
|
||||||
|
|
||||||
// If the task is being moved between lists, make sure to move the bucket + index as well
|
// If the task is being moved between lists, make sure to move the bucket + index as well
|
||||||
if t.ListID != 0 && ot.ListID != t.ListID {
|
if t.ListID != 0 && ot.ListID != t.ListID {
|
||||||
latestTask := &Task{}
|
latestTask := &Task{}
|
||||||
|
|
|
@ -302,6 +302,28 @@ func TestTask_Update(t *testing.T) {
|
||||||
"bucket_id": 4,
|
"bucket_id": 4,
|
||||||
}, false)
|
}, false)
|
||||||
})
|
})
|
||||||
|
t.Run("repeating tasks should not be moved to the done bucket", func(t *testing.T) {
|
||||||
|
db.LoadAndAssertFixtures(t)
|
||||||
|
s := db.NewSession()
|
||||||
|
defer s.Close()
|
||||||
|
|
||||||
|
task := &Task{
|
||||||
|
ID: 28,
|
||||||
|
Done: true,
|
||||||
|
}
|
||||||
|
err := task.Update(s, u)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
err = s.Commit()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.False(t, task.Done)
|
||||||
|
assert.Equal(t, int64(1), task.BucketID)
|
||||||
|
|
||||||
|
db.AssertExists(t, "tasks", map[string]interface{}{
|
||||||
|
"id": 28,
|
||||||
|
"done": false,
|
||||||
|
"bucket_id": 1,
|
||||||
|
}, false)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTask_Delete(t *testing.T) {
|
func TestTask_Delete(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue