diff --git a/pttodo/root.go b/pttodo/root.go index a4b2723..0059958 100644 --- a/pttodo/root.go +++ b/pttodo/root.go @@ -20,6 +20,23 @@ func (root Root) Equals(other Root) bool { return true } +func (root *Root) AutoMove() { + root.MoveScheduledToTodo() + root.MoveTodoToScheduled() +} + +func (root *Root) MoveTodoToScheduled() { + for i := len(root.Todo) - 1; i >= 0; i-- { + if root.Todo[i].Schedule != "" && !root.Todo[i].Triggered() { + root.Scheduled = append(root.Scheduled, root.Todo[i]) + for j := i; j < len(root.Todo)-1; j++ { + root.Todo[j] = root.Todo[j+1] + } + root.Todo = root.Todo[:len(root.Todo)-1] + } + } +} + func (root *Root) MoveScheduledToTodo() { for i := len(root.Scheduled) - 1; i >= 0; i-- { if root.Scheduled[i].Triggered() {