From 90978abfdd401719361ee6392507f5e73db994eb Mon Sep 17 00:00:00 2001 From: Douglas Ronne Date: Mon, 15 Jul 2024 11:30:13 -0400 Subject: [PATCH] implemented workflows for projects --- composeApp/src/commonMain/kotlin/model/ActionType.kt | 2 +- composeApp/src/commonMain/kotlin/model/ItemWorkflow.kt | 4 ++-- composeApp/src/commonMain/kotlin/viewmodel/GtdModel.kt | 4 ++++ .../src/commonTest/kotlin/model/ItemWorkflowTest.kt | 8 ++++---- .../kotlin/viewmodel/GtdModelHasWorkflowsTest.kt | 5 ++++- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/model/ActionType.kt b/composeApp/src/commonMain/kotlin/model/ActionType.kt index 7346a44..89a31bd 100644 --- a/composeApp/src/commonMain/kotlin/model/ActionType.kt +++ b/composeApp/src/commonMain/kotlin/model/ActionType.kt @@ -1,6 +1,6 @@ package model enum class ActionType { - Copy, + COPY, MOVE; } diff --git a/composeApp/src/commonMain/kotlin/model/ItemWorkflow.kt b/composeApp/src/commonMain/kotlin/model/ItemWorkflow.kt index 5eb940c..e8c50bb 100644 --- a/composeApp/src/commonMain/kotlin/model/ItemWorkflow.kt +++ b/composeApp/src/commonMain/kotlin/model/ItemWorkflow.kt @@ -7,11 +7,11 @@ import viewmodel.DewItViewModel data class ItemWorkflow( val source: String, val destination: String, - val actionType: ActionType = ActionType.Copy + val actionType: ActionType = ActionType.COPY ) { fun execute(item: Item, model: DewItViewModel) { when(actionType) { - ActionType.Copy -> { + ActionType.COPY -> { if(destination == item.id) return model.findItemById(destination)?.add(item) diff --git a/composeApp/src/commonMain/kotlin/viewmodel/GtdModel.kt b/composeApp/src/commonMain/kotlin/viewmodel/GtdModel.kt index 574d6cb..bf1bff3 100644 --- a/composeApp/src/commonMain/kotlin/viewmodel/GtdModel.kt +++ b/composeApp/src/commonMain/kotlin/viewmodel/GtdModel.kt @@ -46,6 +46,10 @@ object GtdModel { inbox.addWorkflow(ItemWorkflow(inbox.id, someday.id, ActionType.MOVE)) inbox.addWorkflow(ItemWorkflow(inbox.id, references.id, ActionType.MOVE)) + projects.addWorkflow(ItemWorkflow(projects.id, someday.id, ActionType.MOVE)) + projects.addWorkflow(ItemWorkflow(projects.id, waiting.id, ActionType.MOVE)) + projects.addWorkflow(ItemWorkflow(projects.id, todo.id, ActionType.COPY)) + val root = Item("Root") root.subItems.addAll(itemList) diff --git a/composeApp/src/commonTest/kotlin/model/ItemWorkflowTest.kt b/composeApp/src/commonTest/kotlin/model/ItemWorkflowTest.kt index 90dafd8..4ee46f8 100644 --- a/composeApp/src/commonTest/kotlin/model/ItemWorkflowTest.kt +++ b/composeApp/src/commonTest/kotlin/model/ItemWorkflowTest.kt @@ -21,7 +21,7 @@ class ItemWorkflowTest { // Then actionType.shouldBeInstanceOf() - .shouldBe(ActionType.Copy) + .shouldBe(ActionType.COPY) } @Test @@ -36,7 +36,7 @@ class ItemWorkflowTest { val itemWorkflow = ItemWorkflow( source = parent.id, destination = copyToParent.id, - actionType = ActionType.Copy + actionType = ActionType.COPY ) // When @@ -55,7 +55,7 @@ class ItemWorkflowTest { parent.add(child) val model = DewItViewModel(listOf(parent)) - val itemWorkflow = ItemWorkflow(parent.id, child.id, ActionType.Copy,) + val itemWorkflow = ItemWorkflow(parent.id, child.id, ActionType.COPY,) // When itemWorkflow.execute(child, model) @@ -72,7 +72,7 @@ class ItemWorkflowTest { parent.add(child) val model = DewItViewModel(listOf(parent)) - val itemWorkflow = ItemWorkflow(parent.id, parent.id, ActionType.Copy,) + val itemWorkflow = ItemWorkflow(parent.id, parent.id, ActionType.COPY,) // When itemWorkflow.execute(child, model) diff --git a/composeApp/src/commonTest/kotlin/viewmodel/GtdModelHasWorkflowsTest.kt b/composeApp/src/commonTest/kotlin/viewmodel/GtdModelHasWorkflowsTest.kt index 76e3207..bce547b 100644 --- a/composeApp/src/commonTest/kotlin/viewmodel/GtdModelHasWorkflowsTest.kt +++ b/composeApp/src/commonTest/kotlin/viewmodel/GtdModelHasWorkflowsTest.kt @@ -25,7 +25,10 @@ class GtdModelHasWorkflowsTest { row("Inbox","todo", ActionType.MOVE), row("Inbox","projects", ActionType.MOVE), row("Inbox", "someday maybe", ActionType.MOVE), - row("Inbox", "references", ActionType.MOVE) + row("Inbox", "references", ActionType.MOVE), + row("Projects", "todo", ActionType.COPY), + row("Projects", "someday maybe", ActionType.MOVE), + row("Projects", "waiting on", ActionType.MOVE) ) // Then