summaryrefslogtreecommitdiffstats
path: root/acf2
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-01-01 21:20:24 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-01-01 21:33:22 +0200
commitdb043691e35bf0dbb0cc4be9671c81e3bbda876d (patch)
tree05fa7566fbb2fb1d55755873714df81d883abb7d /acf2
parenta454ae3a178827017de1327564a70d4bd694959e (diff)
downloadacf2-db043691e35bf0dbb0cc4be9671c81e3bbda876d.tar.bz2
acf2-db043691e35bf0dbb0cc4be9671c81e3bbda876d.tar.xz
model: schedule validation of nested models when a model is instantiated
rationale: filling in default values also for nested model fields
Diffstat (limited to 'acf2')
-rw-r--r--acf2/model/model.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/acf2/model/model.lua b/acf2/model/model.lua
index c6c5306..6ff398a 100644
--- a/acf2/model/model.lua
+++ b/acf2/model/model.lua
@@ -1,5 +1,5 @@
--[[
-Copyright (c) 2012-2013 Kaarle Ritvanen
+Copyright (c) 2012-2014 Kaarle Ritvanen
See LICENSE file for license details
--]]
@@ -10,6 +10,7 @@ local raise = require('acf2.error').raise
local fld = require('acf2.model.field')
local Field = fld.Field
local Member = fld.Member
+local Model = fld.Model
local node = require('acf2.model.node')
local BoundMember = node.BoundMember
@@ -30,7 +31,7 @@ local function to_member(obj, params)
if not params then params = {} end
if object.issubclass(obj, M.Model) then
params.model = obj
- return fld.Model(params)
+ return Model(params)
end
local res = getmetatable(obj).class and obj or obj(params)
assert(isinstance(res, Member))
@@ -214,6 +215,8 @@ function M.Model:init(context)
return self:has_permission(user, permission)
end
end
+
+ for _, f in ipairs(_members(Model)) do mt.load(f.name) end
end