summaryrefslogtreecommitdiffstats
path: root/acf2
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-12-17 16:56:37 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-12-17 19:26:32 +0200
commit09a5e68f4b2cf31a7765d4de609a20e0b5c440db (patch)
tree077a74083108186e7c63c672e8af3af589d0e247 /acf2
parenteb34f2c0f93cb1e17d2483f2cd3f9b199f61ec35 (diff)
downloadacf2-09a5e68f4b2cf31a7765d4de609a20e0b5c440db.tar.bz2
acf2-09a5e68f4b2cf31a7765d4de609a20e0b5c440db.tar.xz
model: allow setting backend address for computed field
Diffstat (limited to 'acf2')
-rw-r--r--acf2/model/field.lua13
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)}
)