From 52334f409ec9c419f29b07d990b8333a4db9ab08 Mon Sep 17 00:00:00 2001 From: Luke Miller Date: Tue, 16 Aug 2022 11:10:40 -0400 Subject: [PATCH] fixed process count, added lazy table length function, removed orgs now decrement org counter, orgs loaded message should now be accurate --- modpol_core/interactions/interactions.lua | 2 +- modpol_core/orgs/base.lua | 1 + modpol_core/storage/storage-local.lua | 2 +- modpol_core/util/misc.lua | 10 ++++++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modpol_core/interactions/interactions.lua b/modpol_core/interactions/interactions.lua index 26092cf..6325f1a 100644 --- a/modpol_core/interactions/interactions.lua +++ b/modpol_core/interactions/interactions.lua @@ -169,7 +169,7 @@ function modpol.interactions.org_dashboard(user, org_string) table.sort(modules) -- list pending - local process_msg = #org.processes .. " total processes" + local process_msg = modpol.util.lazy_table_length(org.processes, "deleted") .. " total processes" if org.pending[user] then process_msg = process_msg .. " (" .. modpol.util.num_pairs(org.pending[user]) .. " pending)" diff --git a/modpol_core/orgs/base.lua b/modpol_core/orgs/base.lua index a596b98..3ac5c46 100644 --- a/modpol_core/orgs/base.lua +++ b/modpol_core/orgs/base.lua @@ -224,6 +224,7 @@ function modpol.orgs:delete() end modpol.orgs.array[self.id] = 'removed' + modpol.orgs.count = modpol.orgs.count - 1 modpol.ocutil.log('Deleted org ' .. self.name .. ': ' .. self.id) self:record('Deleted ' .. self.name .. ' and all child orgs', 'del_org') diff --git a/modpol_core/storage/storage-local.lua b/modpol_core/storage/storage-local.lua index 3be42fd..4188589 100644 --- a/modpol_core/storage/storage-local.lua +++ b/modpol_core/storage/storage-local.lua @@ -99,7 +99,7 @@ local load_orgs = function() -- setmetatable(org, modpol.orgs) -- end - local nn = modpol.ocutil.table_length (modpol.orgs.array) + local nn = modpol.orgs.count local str = "entries" if nn == 1 then str = "entry" end modpol.ocutil.log (nn .. " orgs loaded from disk") diff --git a/modpol_core/util/misc.lua b/modpol_core/util/misc.lua index e92b1a2..ccd766c 100644 --- a/modpol_core/util/misc.lua +++ b/modpol_core/util/misc.lua @@ -32,3 +32,13 @@ function modpol.util.num_pairs(t) end return i end + +function modpol.util.lazy_table_length(tbl, lazy_val) + local count = 0 + for k, v in ipairs(tbl) do + if v ~= lazy_val then + count = count + 1 + end + end + return count +end