Major improvements on policy configuration

- Bugfixes on change_policy
- Replaced _consent modules with configurable modules
This commit is contained in:
Nathan Schneider
2022-08-09 17:00:24 -06:00
parent 78ea89559f
commit 22a2048d5a
21 changed files with 253 additions and 379 deletions

View File

@ -13,8 +13,8 @@ consent.data = {
}
consent.config = {
prompt = "Do you consent?",
votes_required = 1
prompt = "Do you consent?",
votes_required = false
}
--- Initiate consent
@ -22,13 +22,22 @@ consent.config = {
-- @param result Callback if this module is embedded in other modules
function consent:initiate(result)
self.data.result = result
-- if org is empty, consent is given automatically
if self.org:get_member_count() == 0 then
-- if org is empty or no votes required, consent given
if self.org:get_member_count() == 0
or self.config.votes_required == 0 then
modpol.interactions.message_org(
self.initiator,
self.org.name,
"Consent reached: " .. self.config.prompt)
if self.data.result then
self.data.result() end
self.org:delete_process(self.id)
else
-- otherwise, create poll
-- set default votes_required
if not self.config.votes_required then
self.config.votes_required = self.org:get_member_count()
end
for id, member in pairs(self.org.members) do
self.org:add_pending_action(self.id, member, "callback")
end
@ -54,6 +63,10 @@ function consent:callback(member)
"/"..self.config.votes_required..")"
)
if self.data.votes >= self.config.votes_required then
modpol.interactions.message_org(
self.initiator,
self.org.name,
"Consent reached: " .. self.config.prompt)
if self.data.result then
self.data.result() end
self.org:delete_process(self.id)