From a835799e110a5963650832abf75ab77aa479f274 Mon Sep 17 00:00:00 2001 From: Luke Miller Date: Thu, 6 Jan 2022 20:17:38 -0500 Subject: [PATCH 1/2] added delete process tree function, updated remove process module --- modpol_core/modules/remove_process.lua | 4 ++-- modpol_core/orgs/process.lua | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modpol_core/modules/remove_process.lua b/modpol_core/modules/remove_process.lua index f8997ff..39cf40c 100644 --- a/modpol_core/modules/remove_process.lua +++ b/modpol_core/modules/remove_process.lua @@ -64,7 +64,7 @@ function remove_process:initiate(result) function(input) if input == "Yes" then if process_mine then - self.org:delete_process(process_id) + self.org:delete_process_tree(process_id) modpol.interactions.message( self.initiator, "Removed process: "..process_choice) @@ -86,7 +86,7 @@ function remove_process:initiate(result) self.org.id, "Removing process: ".. process_choice) - self.org:delete_process(process_id) + self.org:delete_process_tree(process_id) modpol.interactions.org_dashboard( self.initiator, self.org.id) if result then result() end diff --git a/modpol_core/orgs/process.lua b/modpol_core/orgs/process.lua index 25c7ba6..f00ad2c 100644 --- a/modpol_core/orgs/process.lua +++ b/modpol_core/orgs/process.lua @@ -48,6 +48,14 @@ function modpol.orgs:call_module(module_slug, initiator, config, result, parent_ return index end +function modpol.orgs:get_root_process(id) + local process = self.processes[id] + while (process.parent_id) do + process = self.processes[process.parent_id] + end + return process +end + function modpol.orgs:delete_process(id) local process = self.processes[id] if process and process ~= "deleted" then @@ -66,6 +74,10 @@ function modpol.orgs:delete_process(id) end end +function modpol.orgs:delete_process_tree(id) + self:delete_process(self:get_root_process(id).id) +end + function modpol.orgs:add_pending_action(process_id, user, callback) self.pending[user] = self.pending[user] or {} self.pending[user][process_id] = callback From 0f479da5ffa298e74d1a045a0e24cbfcb8532bac Mon Sep 17 00:00:00 2001 From: Luke Miller Date: Fri, 7 Jan 2022 15:05:45 -0500 Subject: [PATCH 2/2] calling self:call_module instead of self.org:call_module, this should fix process deletion issues --- modpol_core/modules/add_child_org_consent.lua | 2 +- modpol_core/modules/change_modules-dropdown.lua | 2 +- modpol_core/modules/change_modules.lua | 2 +- modpol_core/modules/create_token.lua | 2 +- modpol_core/modules/join_org_consent.lua | 2 +- modpol_core/modules/remove_child_consent.lua | 2 +- modpol_core/modules/remove_member_consent.lua | 2 +- modpol_core/modules/remove_org_consent.lua | 2 +- modpol_core/modules/remove_process.lua | 2 +- modpol_core/modules/rename_org_consent.lua | 2 +- modpol_core/modules/tokenomics.lua | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modpol_core/modules/add_child_org_consent.lua b/modpol_core/modules/add_child_org_consent.lua index 4711387..6816b71 100644 --- a/modpol_core/modules/add_child_org_consent.lua +++ b/modpol_core/modules/add_child_org_consent.lua @@ -42,7 +42,7 @@ function add_child_org_consent:initiate(result) self.initiator, "Proposed child org: " .. input) -- initiate consent process - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/change_modules-dropdown.lua b/modpol_core/modules/change_modules-dropdown.lua index 58986c7..ae651ec 100644 --- a/modpol_core/modules/change_modules-dropdown.lua +++ b/modpol_core/modules/change_modules-dropdown.lua @@ -128,7 +128,7 @@ end --- propose_change -- @field type "add" or "remove" function change_modules:propose_change(type, mod_text) - self.org:call_module( + self:call_module( "consent",self.initiator, { prompt = "Do you consent to "..type.. diff --git a/modpol_core/modules/change_modules.lua b/modpol_core/modules/change_modules.lua index a7bd7f2..036e10b 100644 --- a/modpol_core/modules/change_modules.lua +++ b/modpol_core/modules/change_modules.lua @@ -75,7 +75,7 @@ function change_modules:initiate(result) self.data.summary = "\nRemove: ".. table.concat(self.data.remove_modules,", ") end - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/create_token.lua b/modpol_core/modules/create_token.lua index 6e54139..6f4c30c 100644 --- a/modpol_core/modules/create_token.lua +++ b/modpol_core/modules/create_token.lua @@ -28,7 +28,7 @@ function create_token:initiate(result) "Token name (alpha-numeric, no spaces):", function(input) self.config.token_name = input - self.org:call_module( + self:call_module( "tokenomics", self.initiator, { diff --git a/modpol_core/modules/join_org_consent.lua b/modpol_core/modules/join_org_consent.lua index 9bfa437..d8d78d8 100644 --- a/modpol_core/modules/join_org_consent.lua +++ b/modpol_core/modules/join_org_consent.lua @@ -24,7 +24,7 @@ function join_org_consent:initiate(result) self.org:delete_process(self.id) else self.data.result = result - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/remove_child_consent.lua b/modpol_core/modules/remove_child_consent.lua index ba3255e..c7ba25f 100644 --- a/modpol_core/modules/remove_child_consent.lua +++ b/modpol_core/modules/remove_child_consent.lua @@ -38,7 +38,7 @@ function remove_child_consent:initiate(result) children, function(input) self.data.child_to_remove = modpol.orgs.get_org(input) - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/remove_member_consent.lua b/modpol_core/modules/remove_member_consent.lua index fc118e1..4088e31 100644 --- a/modpol_core/modules/remove_member_consent.lua +++ b/modpol_core/modules/remove_member_consent.lua @@ -32,7 +32,7 @@ function remove_member_consent:initiate(result) self.org.members, function(input) self.data.member_to_remove = input - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/remove_org_consent.lua b/modpol_core/modules/remove_org_consent.lua index 30891a0..9dcb391 100644 --- a/modpol_core/modules/remove_org_consent.lua +++ b/modpol_core/modules/remove_org_consent.lua @@ -24,7 +24,7 @@ function remove_org_consent:initiate(result) self.org:delete_process(self.id) else self.data.result = result - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/remove_process.lua b/modpol_core/modules/remove_process.lua index 39cf40c..b5c5339 100644 --- a/modpol_core/modules/remove_process.lua +++ b/modpol_core/modules/remove_process.lua @@ -73,7 +73,7 @@ function remove_process:initiate(result) if result then result() end self.org:delete_process(self.id) else - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/rename_org_consent.lua b/modpol_core/modules/rename_org_consent.lua index 1b9aa47..551bf20 100644 --- a/modpol_core/modules/rename_org_consent.lua +++ b/modpol_core/modules/rename_org_consent.lua @@ -45,7 +45,7 @@ function rename_org_consent:initiate(result) "Proposed to change name of org " .. self.org.name .. " to " .. input) -- initiate consent process - self.org:call_module( + self:call_module( "consent", self.initiator, { diff --git a/modpol_core/modules/tokenomics.lua b/modpol_core/modules/tokenomics.lua index e968b29..d9aa306 100644 --- a/modpol_core/modules/tokenomics.lua +++ b/modpol_core/modules/tokenomics.lua @@ -47,7 +47,7 @@ function tokenomics:initiate(result) self.org:delete_process(self.id) else if self.config.consent then - self.org:call_module( + self:call_module( "consent", self.initiator, {