From a560b76c7b46f067637a79b01f923d377339a5c3 Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Thu, 20 Feb 2014 18:28:29 +0200 Subject: model: allow different representation of choices in MF and PM --- acf2/model/init.lua | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'acf2/model/init.lua') diff --git a/acf2/model/init.lua b/acf2/model/init.lua index 9383ad9..b614c6b 100644 --- a/acf2/model/init.lua +++ b/acf2/model/init.lua @@ -105,16 +105,18 @@ function M.Reference:_choice(context) if M.path.is_subordinate(context.path, ch.ref) then ch = nil end if ch then ch['ui-value'] = M.path.name(ch.ref) - ch.value = self.dereference and ch.ref or M.path.escape( - ch['ui-value'] - ) + ch.be_value = M.path.escape(ch['ui-value']) + ch.value = self.dereference and ch.ref or ch.be_value if self.filter then assert(isinstance(v, model.Model)) if not node.match(v, self.filter) then ch.enabled = false end end end - else update(ch, {value=M.path.escape(v), ['ui-value']=v}) end + else + local ep = M.path.escape(v) + update(ch, {be_value=ep, value=ep, ['ui-value']=v}) + end if ch then table.insert(res, ch) end end @@ -159,15 +161,10 @@ function M.Reference:normalize(context, value) rel = rel:sub(prefix:len() + 1, -1) end - -- assume one-level ref for now - if #M.path.split(rel) > 1 then - raise(path, 'Subtree references not yet supported') - end - -- TODO check instance type relabel(path, self.follow, self, context, rel) - return self.dereference and value or rel, rel + return self.dereference and value or rel end function M.Reference:deleted(context, addr) -- cgit v1.2.3