Merge branch 'save_orgs_fix' into 'master'

bug fixes: orgs load properly (metatable set), orgs can't have same name, orgs...

See merge request medlabboulder/modpol!17
This commit is contained in:
2021-04-19 03:47:22 +00:00
3 changed files with 28 additions and 13 deletions

View File

@ -8,10 +8,6 @@
-- Main API table -- Main API table
if not modpol then modpol = {} end if not modpol then modpol = {} end
-- Table for modpol data
modpol.orgs = {
}
-- Record of every state change should appear here -- Record of every state change should appear here
modpol.ledger = { modpol.ledger = {
} }
@ -77,10 +73,8 @@ dofile (topdir .. "/api.lua")
-- Final checks -- Final checks
-- create instance if not present -- create instance if not present
if not modpol.orgs.get_org('instance') then modpol.instance = modpol.orgs.array[1] or modpol.orgs.init_instance()
modpol.orgs.init_instance()
modpol.instance = modpol.orgs.get_org('instance')
end
modpol.ocutil.log ("modpol loaded") modpol.ocutil.log ("modpol loaded")

View File

@ -1,4 +1,4 @@
modpol.orgs = modpol.orgs = modpol.orgs or
{ {
count = 1, count = 1,
array = {} array = {}
@ -61,6 +61,8 @@ function modpol.orgs.reset()
modpol.orgs.array[id] = nil modpol.orgs.array[id] = nil
end end
end end
modpol.orgs:record('Resetting all orgs', 'org_reset')
end end
-- =================================================== -- ===================================================
@ -89,6 +91,9 @@ function modpol.orgs.init_instance()
-- adding instance to org list -- adding instance to org list
modpol.orgs.array[1] = instance modpol.orgs.array[1] = instance
modpol.orgs:record('Initialized the instance org', 'create_instance')
return instance return instance
end end
@ -144,6 +149,12 @@ function modpol.orgs:add_org(name)
return false, error_msg return false, error_msg
end end
if modpol.orgs.get_org(name) then
error_msg = 'Error: org name is already being used'
modpol.ocutil.log(error_msg)
return false, error_msg
end
-- creating the child sub org -- creating the child sub org
modpol.orgs.count = modpol.orgs.count + 1 modpol.orgs.count = modpol.orgs.count + 1
local child_org = { local child_org = {
@ -162,6 +173,7 @@ function modpol.orgs:add_org(name)
-- adding child to org list -- adding child to org list
modpol.orgs.array[child_org.id] = child_org modpol.orgs.array[child_org.id] = child_org
self:record('created sub org ' .. name, 'add_org')
return child_org return child_org
end end
@ -186,6 +198,8 @@ function modpol.orgs:delete()
modpol.orgs.array[self.id] = 'removed' modpol.orgs.array[self.id] = 'removed'
print('Removed ' .. self.name .. ': ' .. self.id) print('Removed ' .. self.name .. ': ' .. self.id)
self:record('Deleted ' .. self.name .. ' and all child orgs', 'del_org')
end end
@ -210,6 +224,7 @@ function modpol.orgs:add_member(user)
-- adds to end if no empty spots -- adds to end if no empty spots
table.insert(self.members, user) table.insert(self.members, user)
end end
self.record('Added member ' .. user, 'add_member')
end end
-- ======================================= -- =======================================
@ -221,6 +236,7 @@ function modpol.orgs:remove_member(user)
if user_index then if user_index then
self.members[user_index] = '' self.members[user_index] = ''
end end
self.record('Removed member ' .. user, 'del_member')
end end
-- =========================================== -- ===========================================

View File

@ -49,7 +49,7 @@ local store_orgs = function()
modpol.ocutil.fatal_error ("store_data: orgs") modpol.ocutil.fatal_error ("store_data: orgs")
end end
local nn = modpol.ocutil.table_length (modpol.orgs) local nn = modpol.ocutil.table_length (modpol.orgs.array)
local str = "entries" local str = "entries"
if nn == 1 then str = "entry" end if nn == 1 then str = "entry" end
modpol.ocutil.log (nn .. " orgs stored to disk") modpol.ocutil.log (nn .. " orgs stored to disk")
@ -80,7 +80,7 @@ end
modpol.store_data = function() modpol.store_data = function()
store_ledger() store_ledger()
store_orgs() store_orgs()
store_old_ledgers() -- store_old_ledgers()
end end
-- =================================================================== -- ===================================================================
@ -116,7 +116,12 @@ local load_orgs = function()
end end
modpol.orgs = func() modpol.orgs = func()
local nn = modpol.ocutil.table_length (modpol.orgs) -- this block resets the metatable after being loaded in so that the class functions work
for id, org in ipairs(modpol.orgs.array) do
setmetatable(org, modpol.orgs)
end
local nn = modpol.ocutil.table_length (modpol.orgs.array)
local str = "entries" local str = "entries"
if nn == 1 then str = "entry" end if nn == 1 then str = "entry" end
modpol.ocutil.log (nn .. " orgs loaded from disk") modpol.ocutil.log (nn .. " orgs loaded from disk")
@ -152,7 +157,7 @@ end
modpol.load_storage = function() modpol.load_storage = function()
load_ledger() load_ledger()
load_orgs() load_orgs()
load_old_ledgers() -- load_old_ledgers()
end end
-- =================================================================== -- ===================================================================