added delete function for processes, and autodeletes on completion
This commit is contained in:
parent
0f41e15845
commit
eeb734bab2
@ -30,6 +30,14 @@ function modpol.modules.consent:new_process(request_id, org_id)
|
||||
return process
|
||||
end
|
||||
|
||||
-- =========================================
|
||||
-- function to delete a process, called when process finishes
|
||||
function modpol.modules.consent:delete()
|
||||
local process_org = modpol.orgs.get_org(self.org_id)
|
||||
process_org.processes[self.id] = "deleted"
|
||||
modpol.ocutil.log('Deleted process #' .. self.id)
|
||||
end
|
||||
|
||||
-- ======================================================
|
||||
-- function for users to vote on a pending request
|
||||
function modpol.modules.consent:approve(user, decision)
|
||||
@ -61,9 +69,11 @@ function modpol.modules.consent:update_status()
|
||||
if #self.votes_yes >= votes_needed then
|
||||
modpol.ocutil.log('Request #' .. self.request_id .. ' passes')
|
||||
process_org:resolve_request(self.request_id, true)
|
||||
self:delete()
|
||||
elseif #self.votes_no >= votes_needed then
|
||||
modpol.ocutil.log('Request #' .. self.request_id .. ' fails to pass')
|
||||
process_org:resolve_request(self.request_id, false)
|
||||
self:delete()
|
||||
else
|
||||
modpol.ocutil.log('Waiting for more votes...')
|
||||
end
|
||||
|
@ -25,14 +25,18 @@ function modpol.orgs:create_process(process_type, request_id)
|
||||
end
|
||||
end
|
||||
|
||||
local index
|
||||
-- attempts to fill empty spots in list, otherwise appends to end
|
||||
if empty_index then
|
||||
self.processes[empty_index] = new_process
|
||||
return empty_index
|
||||
index = empty_index
|
||||
else
|
||||
table.insert(self.processes, new_process)
|
||||
return #self.processes
|
||||
index = #self.processes
|
||||
end
|
||||
|
||||
new_process.id = index
|
||||
return index
|
||||
end
|
||||
|
||||
-- ===========================
|
||||
@ -169,12 +173,7 @@ function modpol.orgs:make_request(request)
|
||||
request_id = empty_index
|
||||
else
|
||||
table.insert(self.requests, request)
|
||||
-- finds end of list to return current request's id
|
||||
local count = 0
|
||||
for k, v in ipairs(self.requests) do
|
||||
count = count + 1
|
||||
end
|
||||
request_id = count
|
||||
request_id = #self.requests
|
||||
end
|
||||
modpol.ocutil.log("Request made by " .. request.user .. " to " .. request.type)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user