diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-01-01 21:20:24 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-01-01 21:33:22 +0200 |
commit | db043691e35bf0dbb0cc4be9671c81e3bbda876d (patch) | |
tree | 05fa7566fbb2fb1d55755873714df81d883abb7d /acf2 | |
parent | a454ae3a178827017de1327564a70d4bd694959e (diff) | |
download | acf2-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.lua | 7 |
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 |