summaryrefslogtreecommitdiffstats
path: root/acf2/model/field.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-10-15 22:28:16 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-10-15 22:28:16 +0300
commitf9d87d59a158fcb1326e647b2ec40c4436125765 (patch)
tree67312d2239566e066996d8ae3245f3c7e8ee06df /acf2/model/field.lua
parent7021795e1f73b7e66ffefe7956cf59290c6cdf05 (diff)
downloadaconf-f9d87d59a158fcb1326e647b2ec40c4436125765.tar.bz2
aconf-f9d87d59a158fcb1326e647b2ec40c4436125765.tar.xz
read-only fields
Diffstat (limited to 'acf2/model/field.lua')
-rw-r--r--acf2/model/field.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/acf2/model/field.lua b/acf2/model/field.lua
index 5829201..22751c2 100644
--- a/acf2/model/field.lua
+++ b/acf2/model/field.lua
@@ -44,6 +44,8 @@ M.Field = class(M.Member)
function M.Field:init(params)
super(self, M.Field):init(params)
+ if self.editable == nil then self.editable = not self.compute end
+
if self.choice and not self['ui-choice'] then
self['ui-choice'] = util.map(
function(name) return self:auto_ui_name(name) end,
@@ -61,6 +63,7 @@ function M.Field:meta(context)
local res = super(self, M.Field):meta(context)
res.type = self.dtype
+ res.editable = self.editable
res.required = self.required
res.default = self.default
res.choice = self.choice
@@ -99,6 +102,7 @@ end
function M.Field:validate(context, value) end
function M.Field:save(context, value)
+ if not self.editable then raise(context.path, 'Is not editable') end
context.txn:set(context.addr, self:_validate(context, value))
end