Expresiones de fórmulas en KMKey

Cuando configuramos uszndo el ZMI (para usuarios avanzados), hay un montón de sitios donde podemos definir fórmulas usando expresiones TALES. En cada caso, los objetos disponibles pueden ser diferentes, y es dificil recordarlos. Aquí dejo una lista de los más usados:

Expressions used in Default Value of Fields

mapping = {
'field': self,
'datamodel': datamodel,
'user': getSecurityManager().getUser(),
'portal': getToolByName(self, 'portal_url').getPortalObject(),
'modules': SecureModuleImporter,
'DateTime': DateTime,
'nothing': None,
}


Expressions used in Fields

mapping = data.copy() # XXX there may be DEFAULT_VALUE_MARKER here

# XXX hack replace DEFAULT_VALUE_MARKER
for k, v in mapping.items():
if v is DEFAULT_VALUE_MARKER:
mapping[k] = '' # XXX should be field's default
portal = getToolByName(self, "portal_url").getPortalObject()

# Wrapping util in the current acquisition context
util = fieldStorageNamespace.__of__(portal)

mapping.update({
'value': value,
'data': data,
'field': self,
'user': getSecurityManager().getUser(),
'portal': portal,
'modules': SecureModuleImporter,
'DateTime': DateTime,
'nothing': None,
# Useful for objects
'object': context,
'proxy': proxy,
# Deprecated: use the 'object' name instead
'context': context,
# Methods registry
'util': util,
})


Expressions used in Layouts

portal = getToolByName(self, 'portal_url').getPortalObject()
data = {
'layout': self,
'datastructure': datastructure,
'datamodel' : datastructure.getDataModel(),
'kw': kw,
'nothing': None,
'portal': portal,
'modules': SecureModuleImporter,
}


Expressions used in Widgets

wftool = getToolByName(self, 'portal_workflow')
portal = getToolByName(self, 'portal_url').getPortalObject()
proxy = datamodel._proxy
if proxy is not None:
review_state = wftool.getInfoFor(proxy, 'review_state', None)
else:
review_state = None
data = {
'widget': self,
'datamodel': datamodel,
'user': datamodel._acl_cache_user,
'nothing': None,
'context': datamodel._context,
'portal': portal,
'modules': SecureModuleImporter,
'proxy': proxy,
'portal_workflow': wftool,
'review_state': review_state,
'layout_mode': layout_mode,
}

Expressions used in Workflows

ob = sci.object
wf = sci.workflow
data = {
'here': ob,
'container': aq_parent(aq_inner(ob)),
'nothing': None,
'root': wf.getPhysicalRoot(),
'request': getattr( ob, 'REQUEST', None ),
'modules': SecureModuleImporter,
'user': getSecurityManager().getUser(),
'state_change': sci,
'transition': sci.transition,
'status': sci.status,
'stacks': sci.stacks,
'kwargs': sci.kwargs,
'workflow': wf,
'scripts': wf.scripts,
}


Expressions used in Actions

data = {
'object_url': object_url,
'folder_url': folder.absolute_url(),
'portal_url': portal.absolute_url(),
'object': object,
'folder': folder,
'portal': portal,
'nothing': None,
'request': getattr( object, 'REQUEST', None ),
'modules': SecureModuleImporter,
'member': member,
'here': object,
}


Expressions used in KMKey Relation Widgets conditions

query = catalog.makeAdvancedQuery({})
if self.query_expression:
data = {
'widget': self,
'datastructure': datastructure,
'datamodel' : datastructure.getDataModel(),
'kw': kw,
'nothing': None,
'modules': SecureModuleImporter,
'MatchGlob': MatchGlob,
'Eq': Eq,
'Le': Le,
'Ge': Ge,
'In': In,
'Between': Between,
'Generic': Generic
}

Etiquetas: ,