Browse Source

added delete process tree function, updated remove process module

Luke Miller 2 years ago
parent
commit
a835799e11
2 changed files with 14 additions and 2 deletions
  1. 2 2
      modpol_core/modules/remove_process.lua
  2. 12 0
      modpol_core/orgs/process.lua

+ 2 - 2
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

+ 12 - 0
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