Example #1
0
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(),
    ])
Example #2
0
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(), ])
Example #3
0
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(),
               ])
Example #4
0
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(),
               ])
Example #5
0
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(),
           ])
Example #6
0
## 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):
Example #7
0
                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