Newer
Older
from cubicweb.predicates import has_related_entities
from cubes.compound.entities import (IClonableAdapter, IContained, IContainer,
structure_def)
def agent_structure_def(schema):
return structure_def(schema, 'Agent').items()
class AgentIClonableAdapter(IClonableAdapter):
rtype = 'clone_of'
class AgentInGroupIClonableAdapter(IClonableAdapter):
"""IClonable for Agent member of a Group, following `member` relation for
cloning.
"""
__select__ = (IClonableAdapter.__select__
& has_related_entities('member', role='object'))
rtype = 'clone_of'
follow_relations = [('member', 'object')]
def registration_callback(vreg):
vreg.register_all(globals().values(), __name__)
vreg.register(IContainer.build_class('Agent'))
for etype, parent_relations in agent_structure_def(vreg.schema):
IContained.register_class(vreg, etype, parent_relations)