diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-12-17 16:56:37 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-12-17 19:26:32 +0200 |
commit | 09a5e68f4b2cf31a7765d4de609a20e0b5c440db (patch) | |
tree | 077a74083108186e7c63c672e8af3af589d0e247 | |
parent | eb34f2c0f93cb1e17d2483f2cd3f9b199f61ec35 (diff) | |
download | aconf-09a5e68f4b2cf31a7765d4de609a20e0b5c440db.tar.bz2 aconf-09a5e68f4b2cf31a7765d4de609a20e0b5c440db.tar.xz |
model: allow setting backend address for computed field
-rw-r--r-- | acf2/model/field.lua | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/acf2/model/field.lua b/acf2/model/field.lua index 7a7595a..6587cdc 100644 --- a/acf2/model/field.lua +++ b/acf2/model/field.lua @@ -16,6 +16,7 @@ local super = object.super local util = require('acf2.util') local map = util.map +local setdefaults = util.setdefaults M.Member = class() @@ -55,12 +56,16 @@ M.Field = class(M.Member) function M.Field:init(params) if not params then params = {} end - util.setdefault(params, 'editable', not params.compute) + params = setdefaults( + params, + { + addr=params.compute and node.null_addr or nil, + editable=not params.compute + } + ) super(self, M.Field):init(params) - if self.compute then self.addr = node.null_addr end - if type(self.editable) ~= 'function' then function self.editable(context) return params.editable end end @@ -78,7 +83,7 @@ function M.Field:init(params) choice[i] = nil end end - return util.setdefaults( + return setdefaults( choice, {enabled=true, ['ui-value']=self:auto_ui_name(choice.value)} ) |