Merge branch 'process-updates' into 'master'

bug fixes for org processes

See merge request medlabboulder/modpol!24
This commit is contained in:
Nathan Schneider 2021-06-08 02:53:51 +00:00
commit 206d4af9e2
3 changed files with 26 additions and 19 deletions

View File

@ -1,14 +1,13 @@
modpol.modules = modpol.modules or {} modpol.modules = modpol.modules or {}
modpol.modules.consent = { modpol.modules.consent = {}
type = "consent",
}
-- sets consent to its own callback -- sets consent to its own callback
modpol.modules.consent.__index = modpol.modules.consent modpol.modules.consent.__index = modpol.modules.consent
function temp_consent_process() function temp_consent_process()
return { return {
type = "consent",
org_id = nil, org_id = nil,
request_id = nil, request_id = nil,
total_votes = 0, total_votes = 0,
@ -31,6 +30,14 @@ function modpol.modules.consent:new_process(request_id, org_id)
return process return process
end 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 for users to vote on a pending request
function modpol.modules.consent:approve(user, decision) function modpol.modules.consent:approve(user, decision)
@ -62,11 +69,16 @@ function modpol.modules.consent:update_status()
if #self.votes_yes >= votes_needed then if #self.votes_yes >= votes_needed then
modpol.ocutil.log('Request #' .. self.request_id .. ' passes') modpol.ocutil.log('Request #' .. self.request_id .. ' passes')
process_org:resolve_request(self.request_id, true) process_org:resolve_request(self.request_id, true)
self:delete()
elseif #self.votes_no >= votes_needed then elseif #self.votes_no >= votes_needed then
modpol.ocutil.log('Request #' .. self.request_id .. ' fails to pass') modpol.ocutil.log('Request #' .. self.request_id .. ' fails to pass')
process_org:resolve_request(self.request_id, false) process_org:resolve_request(self.request_id, false)
self:delete()
else else
modpol.ocutil.log('Waiting for more votes...') modpol.ocutil.log('Waiting for more votes...')
end end
end end
function modpol.modules.consent.pending_processes()
end

View File

@ -252,7 +252,7 @@ end
function modpol.orgs:remove_member(user) function modpol.orgs:remove_member(user)
-- sets the array index to an empty string so that consecutive list is preserved -- sets the array index to an empty string so that consecutive list is preserved
-- empty spots will get filled in by new members -- empty spots will get filled in by new members
user_index = self:get_member_index(user) local user_index = self:get_member_index(user)
if user_index then if user_index then
self.members[user_index] = '' self.members[user_index] = ''
else else
@ -265,7 +265,7 @@ end
-- =========================================== -- ===========================================
-- boolean check whether user is an org -- boolean check whether user is an org
function modpol.orgs:has_member(user) function modpol.orgs:has_member(user)
user_index = self:get_member_index(user) local user_index = self:get_member_index(user)
if user_index then if user_index then
return true return true
else else

View File

@ -25,14 +25,18 @@ function modpol.orgs:create_process(process_type, request_id)
end end
end end
local index
-- attempts to fill empty spots in list, otherwise appends to end -- attempts to fill empty spots in list, otherwise appends to end
if empty_index then if empty_index then
self.processes[empty_index] = new_process self.processes[empty_index] = new_process
return empty_index index = empty_index
else else
table.insert(self.processes, new_process) table.insert(self.processes, new_process)
return #self.processes index = #self.processes
end end
new_process.id = index
return index
end end
-- =========================== -- ===========================
@ -108,12 +112,8 @@ function modpol.orgs:make_request(request)
return false return false
end end
-- num_params should equal zero at the end if request.params matches the num of params for that type -- request.params should match the num of params for that type
for k, v in ipairs(request.params) do if #request.params ~= num_params then
num_params = num_params - 1
end
if num_params ~= 0 then
modpol.ocutil.log('Error in ' .. self.name .. ':make_request -> request has invalid number of parameters') modpol.ocutil.log('Error in ' .. self.name .. ':make_request -> request has invalid number of parameters')
return false return false
end end
@ -173,12 +173,7 @@ function modpol.orgs:make_request(request)
request_id = empty_index request_id = empty_index
else else
table.insert(self.requests, request) table.insert(self.requests, request)
-- finds end of list to return current request's id request_id = #self.requests
local count = 0
for k, v in ipairs(self.requests) do
count = count + 1
end
request_id = count
end end
modpol.ocutil.log("Request made by " .. request.user .. " to " .. request.type) modpol.ocutil.log("Request made by " .. request.user .. " to " .. request.type)