示例#1
0
class MemberOfParliament(GroupMembership):
    """Defined by groupmembership and additional data.
    """
    
    titles = one2many("titles",
        "bungeni.models.domain.MemberTitleContainer", "membership_id")
    addresses = one2manyindirect("addresses", 
        "bungeni.models.domain.UserAddressContainer", "user_id")
示例#2
0
class MemberOfParliament(GroupMembership):
    """Defined by groupmembership and additional data.
    """
    sort_on = ["last_name", "first_name", "middle_name"]
    sort_replace = {"user_id": ["last_name", "first_name"],
        "constituency_id":["name"], "province_id":["name"],
        "region_id":["name"], "party_id":["name"]}
    titles = one2many("titles",
        "bungeni.models.domain.MemberTitleContainer", "membership_id")
    addresses = one2manyindirect("addresses", 
        "bungeni.models.domain.UserAddressContainer", "user_id")
示例#3
0
class DocVersion(Version):
    """A version-change of a document.
    """
    interface.implements(interfaces.IDocVersion, )
    # !+version_feature_attachment
    # !+FILES_VERSION_CONTAINER_ATTRIBUTE_ERROR_HACK note, "declaring" the
    # container with bungeni.alchemist.model.add_container_property_to_model
    # gives same errors!
    filevers = one2manyindirect(
        "filevers", "bungeni.models.domain.AttachmentVersionContainer",
        "head_id", "doc_id")
示例#4
0
def add_container_property_to_model(domain_model, 
        name, container_qualname, rel_attr, indirect_key=None
    ):
    """Add an alchemist container attribute to domain_model. 
    These attributes are only catalysed (re-instrumented on domain_model) if 
    defined directly on domain_model i.e. are not inherited, must be defined 
    on each class.
    """
    assert not domain_model.__dict__.has_key(name), \
        "type %s already has a %r attribute %r" % (
            domain_model, name, domain_model.__dict__[name])
    
    if indirect_key:
        setattr(domain_model, name, 
            one2manyindirect(name, container_qualname, rel_attr, indirect_key))
    else:
        setattr(domain_model, name,
            one2many(name, container_qualname, rel_attr))
示例#5
0
def add_container_property_to_model(domain_model,
                                    name,
                                    container_qualname,
                                    rel_attr,
                                    indirect_key=None):
    """Add an alchemist container attribute to domain_model. 
    These attributes are only catalysed (re-instrumented on domain_model) if 
    defined directly on domain_model i.e. are not inherited, must be defined 
    on each class.
    """
    assert not domain_model.__dict__.has_key(name), \
        "type %s already has a %r attribute %r" % (
            domain_model, name, domain_model.__dict__[name])

    if indirect_key:
        setattr(
            domain_model, name,
            one2manyindirect(name, container_qualname, rel_attr, indirect_key))
    else:
        setattr(domain_model, name, one2many(name, container_qualname,
                                             rel_attr))