mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 01:05:42 +00:00
Redesign db models.
This commit is contained in:
parent
34b87c23a7
commit
525d53a906
@ -25,10 +25,12 @@ class Role(db.Model):
|
|||||||
A Role can be associated with many User rows.
|
A Role can be associated with many User rows.
|
||||||
"""
|
"""
|
||||||
__tablename__ = 'roles'
|
__tablename__ = 'roles'
|
||||||
|
# Primary key
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
name = db.Column(db.String(64), unique=True)
|
|
||||||
default = db.Column(db.Boolean, default=False, index=True)
|
default = db.Column(db.Boolean, default=False, index=True)
|
||||||
|
name = db.Column(db.String(64), unique=True)
|
||||||
permissions = db.Column(db.Integer)
|
permissions = db.Column(db.Integer)
|
||||||
|
# Relationships
|
||||||
users = db.relationship('User', backref='role', lazy='dynamic')
|
users = db.relationship('User', backref='role', lazy='dynamic')
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
@ -101,12 +103,15 @@ class User(UserMixin, db.Model):
|
|||||||
Model for Users that are registered to Opaque.
|
Model for Users that are registered to Opaque.
|
||||||
"""
|
"""
|
||||||
__tablename__ = 'users'
|
__tablename__ = 'users'
|
||||||
|
# Primary key
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
confirmed = db.Column(db.Boolean, default=False)
|
||||||
email = db.Column(db.String(64), unique=True, index=True)
|
email = db.Column(db.String(64), unique=True, index=True)
|
||||||
username = db.Column(db.String(64), unique=True, index=True)
|
|
||||||
password_hash = db.Column(db.String(128))
|
password_hash = db.Column(db.String(128))
|
||||||
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
|
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
|
||||||
confirmed = db.Column(db.Boolean, default=False)
|
username = db.Column(db.String(64), unique=True, index=True)
|
||||||
|
# Relationships
|
||||||
|
jobs = db.relationship('Job', backref='job', lazy='dynamic')
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
"""
|
"""
|
||||||
@ -204,21 +209,33 @@ class AnonymousUser(AnonymousUserMixin):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
class Job():
|
class Job(db.Model):
|
||||||
"""
|
"""
|
||||||
Class to define Jobs.
|
Class to define Jobs.
|
||||||
"""
|
"""
|
||||||
__tablename__ = 'jobs'
|
__tablename__ = 'jobs'
|
||||||
|
# Primary key
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
title = db.Column(db.String(32))
|
|
||||||
description = db.Column(db.String(64))
|
description = db.Column(db.String(64))
|
||||||
service = db.Column(db.String(64), index=True)
|
'''
|
||||||
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), index=True)
|
' Requested ressources.
|
||||||
requested_cpus = db.Column(db.Integer, default=None)
|
' Example: {"n_cores": 2,
|
||||||
requested_memory = db.Column(db.Integer, default=None)
|
' "mem_mb": 4096
|
||||||
service_args = db.Column(db.String(255)) # JSON string representation {'lang': new_ocr_job_form.language.data, 'version': new_ocr_job_form.version. }
|
' }
|
||||||
status = db.Column(db.String(64))
|
'''
|
||||||
cmd_args = db.Column(db.String(255)) # For extra cmd arguments
|
ressources = db.Column(db.String(255))
|
||||||
|
service = db.Column(db.String(64))
|
||||||
|
'''
|
||||||
|
' Service specific arguments in JSON format.
|
||||||
|
' Example: {"args": ["--keep-intermediates", "skip-binarization"],
|
||||||
|
' "lang": "eng",
|
||||||
|
' "version": "latest"
|
||||||
|
' }
|
||||||
|
'''
|
||||||
|
service_args = db.Column(db.String(255))
|
||||||
|
status = db.Column(db.String(8))
|
||||||
|
title = db.Column(db.String(32))
|
||||||
|
user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super(Job, self).__init__(**kwargs)
|
super(Job, self).__init__(**kwargs)
|
||||||
@ -230,7 +247,11 @@ class Job():
|
|||||||
return '<Job %r>' % self.title
|
return '<Job %r>' % self.title
|
||||||
|
|
||||||
|
|
||||||
login_manager.anonymous_user = AnonymousUser # Flask-Login is told to use the application’s custom anonymous user by setting its class in the login_manager.anonymous_user attribute.
|
'''
|
||||||
|
' Flask-Login is told to use the application’s custom anonymous user by setting
|
||||||
|
' its class in the login_manager.anonymous_user attribute.
|
||||||
|
'''
|
||||||
|
login_manager.anonymous_user = AnonymousUser
|
||||||
|
|
||||||
|
|
||||||
@login_manager.user_loader
|
@login_manager.user_loader
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
"""Initial commit
|
"""initial migration
|
||||||
|
|
||||||
Revision ID: 1d405e6a9d7b
|
Revision ID: 717796966c8c
|
||||||
Revises:
|
Revises:
|
||||||
Create Date: 2019-08-05 16:36:07.187004
|
Create Date: 2019-08-06 11:39:51.067875
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from alembic import op
|
from alembic import op
|
||||||
@ -10,7 +10,7 @@ import sqlalchemy as sa
|
|||||||
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = '1d405e6a9d7b'
|
revision = '717796966c8c'
|
||||||
down_revision = None
|
down_revision = None
|
||||||
branch_labels = None
|
branch_labels = None
|
||||||
depends_on = None
|
depends_on = None
|
||||||
@ -20,8 +20,8 @@ def upgrade():
|
|||||||
# ### commands auto generated by Alembic - please adjust! ###
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
op.create_table('roles',
|
op.create_table('roles',
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
sa.Column('name', sa.String(length=64), nullable=True),
|
|
||||||
sa.Column('default', sa.Boolean(), nullable=True),
|
sa.Column('default', sa.Boolean(), nullable=True),
|
||||||
|
sa.Column('name', sa.String(length=64), nullable=True),
|
||||||
sa.Column('permissions', sa.Integer(), nullable=True),
|
sa.Column('permissions', sa.Integer(), nullable=True),
|
||||||
sa.PrimaryKeyConstraint('id'),
|
sa.PrimaryKeyConstraint('id'),
|
||||||
sa.UniqueConstraint('name')
|
sa.UniqueConstraint('name')
|
||||||
@ -29,21 +29,34 @@ def upgrade():
|
|||||||
op.create_index(op.f('ix_roles_default'), 'roles', ['default'], unique=False)
|
op.create_index(op.f('ix_roles_default'), 'roles', ['default'], unique=False)
|
||||||
op.create_table('users',
|
op.create_table('users',
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('confirmed', sa.Boolean(), nullable=True),
|
||||||
sa.Column('email', sa.String(length=64), nullable=True),
|
sa.Column('email', sa.String(length=64), nullable=True),
|
||||||
sa.Column('username', sa.String(length=64), nullable=True),
|
|
||||||
sa.Column('password_hash', sa.String(length=128), nullable=True),
|
sa.Column('password_hash', sa.String(length=128), nullable=True),
|
||||||
sa.Column('role_id', sa.Integer(), nullable=True),
|
sa.Column('role_id', sa.Integer(), nullable=True),
|
||||||
sa.Column('confirmed', sa.Boolean(), nullable=True),
|
sa.Column('username', sa.String(length=64), nullable=True),
|
||||||
sa.ForeignKeyConstraint(['role_id'], ['roles.id'], ),
|
sa.ForeignKeyConstraint(['role_id'], ['roles.id'], ),
|
||||||
sa.PrimaryKeyConstraint('id')
|
sa.PrimaryKeyConstraint('id')
|
||||||
)
|
)
|
||||||
op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True)
|
op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True)
|
||||||
op.create_index(op.f('ix_users_username'), 'users', ['username'], unique=True)
|
op.create_index(op.f('ix_users_username'), 'users', ['username'], unique=True)
|
||||||
|
op.create_table('jobs',
|
||||||
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('description', sa.String(length=64), nullable=True),
|
||||||
|
sa.Column('ressources', sa.String(length=255), nullable=True),
|
||||||
|
sa.Column('service', sa.String(length=64), nullable=True),
|
||||||
|
sa.Column('service_args', sa.String(length=255), nullable=True),
|
||||||
|
sa.Column('status', sa.String(length=8), nullable=True),
|
||||||
|
sa.Column('title', sa.String(length=32), nullable=True),
|
||||||
|
sa.Column('user_id', sa.Integer(), nullable=True),
|
||||||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
|
||||||
|
sa.PrimaryKeyConstraint('id')
|
||||||
|
)
|
||||||
# ### end Alembic commands ###
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_table('jobs')
|
||||||
op.drop_index(op.f('ix_users_username'), table_name='users')
|
op.drop_index(op.f('ix_users_username'), table_name='users')
|
||||||
op.drop_index(op.f('ix_users_email'), table_name='users')
|
op.drop_index(op.f('ix_users_email'), table_name='users')
|
||||||
op.drop_table('users')
|
op.drop_table('users')
|
Loading…
Reference in New Issue
Block a user