def define_page_table(): global page_table page_table = Table( 'page', meta.metadata, Column('id', types.UnicodeText, primary_key=True, default=_types.make_uuid), Column('name', types.UnicodeText, nullable=False, unique=True, index=True), Column('title', types.UnicodeText, nullable=False), Column('description', types.UnicodeText, nullable=True), Column('type', types.UnicodeText), Column('state', types.UnicodeText), Column('sections', types.UnicodeText), Column('modified', types.DateTime, default=datetime.datetime.now, nullable=False), Column('status', types.UnicodeText), ) mapper(Page, page_table, extension=[ extension.PluginMapperExtension(), ])
def define_validation_token_table(): global validation_token_table validation_token_table = Table('validation_tokens', meta.metadata, Column('id', types.UnicodeText, primary_key=True, default=_types.make_uuid), Column('user_id', types.UnicodeText, ForeignKey('user.id'), unique=True), Column('token', types.UnicodeText), Column('valid', types.Boolean) ) mapper(ValidationToken, validation_token_table, extension=[extension.PluginMapperExtension(), ])
def define_table(): global restricted_requests_table restricted_requests_table = Table( 'restricted_requests', meta.metadata, Column('request_id', types.String, primary_key=True, default=model.types.make_uuid), Column('request_email', types.String), Column('user_id', types.String), Column('resource_id', types.String, nullable=False), Column('owner_id', types.UnicodeText, nullable=False), Column('download_id', types.String), Column('message', types.String), Column('submitted_at', types.DateTime, default=datetime.datetime.now()), Column('accepted_at', types.DateTime), Column('rejected_at', types.DateTime)) orm.mapper(RestrictedRequest, restricted_requests_table, extension=[ extension.PluginMapperExtension(), ])
def define_table(): global orcid_user_table orcid_user_table = Table( 'orcid_user', meta.metadata, Column('user_id', types.UnicodeText, ForeignKey('user.id'), primary_key=True), Column('orcid_identifier', types.String, unique=True, nullable=False), Column('access_token', types.String, nullable=False), Column('refresh_token', types.String), Column('associated_at', types.BigInteger, nullable=False), # association timestamp Column('expires_at', types.BigInteger, nullable=False), # expiry timestamp for the access token ) orm.mapper(OrcidUser, orcid_user_table, extension=[ extension.PluginMapperExtension(), ])
def define_user_extra_table(): global user_extra_table user_extra_table = Table( 'user_extra', meta.metadata, Column('id', types.UnicodeText, primary_key=True, default=_types.make_uuid), Column('user_id', types.UnicodeText, ForeignKey('user.id')), Column('key', types.UnicodeText), Column('value', types.UnicodeText), ) Index('user_id_key_idx', user_extra_table.c.user_id, user_extra_table.c.key, unique=True) mapper(UserExtra, user_extra_table, extension=[ extension.PluginMapperExtension(), ])
## Mappers meta.mapper(Resource, resource_table, properties={ 'package': orm.relation( Package, # all resources including deleted # formally package_resources_all backref=orm.backref('resources_all', collection_class=ordering_list('position'), cascade='all, delete', order_by=resource_table.c.position, ), ) }, extension=[extension.PluginMapperExtension()], ) def resource_identifier(obj): return obj.id class DictProxy(object): def __init__(self, target_key, target_dict, data_type=text_type): self.target_key = target_key self.target_dict = target_dict self.data_type = data_type def __get__(self, obj, type):
cascade='all, delete, delete-orphan', ), ), 'package_no_state': orm.relation( Package, backref=orm.backref( 'extras_list', cascade='all, delete, delete-orphan', ), ) }, order_by=[package_extra_table.c.package_id, package_extra_table.c.key], extension=[ vdm.sqlalchemy.Revisioner(extra_revision_table), extension.PluginMapperExtension(), ], ) vdm.sqlalchemy.modify_base_object_mapper(PackageExtra, Revision, State) PackageExtraRevision = vdm.sqlalchemy.create_object_version( mapper, PackageExtra, extra_revision_table) PackageExtraRevision.related_packages = lambda self: [self.continuity.package] def _create_extra(key, value): return PackageExtra(key=unicode(key), value=value) import vdm.sqlalchemy.stateful