diff options
Diffstat (limited to 'animism-align/cli')
| -rw-r--r-- | animism-align/cli/app/sql/common.py | 1 | ||||
| -rw-r--r-- | animism-align/cli/app/sql/env.py | 1 | ||||
| -rw-r--r-- | animism-align/cli/app/sql/models/annotation.py | 2 | ||||
| -rw-r--r-- | animism-align/cli/app/sql/models/paragraph.py | 2 | ||||
| -rw-r--r-- | animism-align/cli/app/sql/models/user.py | 33 | ||||
| -rw-r--r-- | animism-align/cli/app/sql/versions/202103021415_add_user_table.py | 31 |
6 files changed, 68 insertions, 2 deletions
diff --git a/animism-align/cli/app/sql/common.py b/animism-align/cli/app/sql/common.py index 1061a46..10deda3 100644 --- a/animism-align/cli/app/sql/common.py +++ b/animism-align/cli/app/sql/common.py @@ -37,3 +37,4 @@ from app.sql.models.upload import Upload from app.sql.models.media import Media from app.sql.models.episode import Episode from app.sql.models.venue import Venue +from app.sql.models.user import User diff --git a/animism-align/cli/app/sql/env.py b/animism-align/cli/app/sql/env.py index 1f03a42..da29cf4 100644 --- a/animism-align/cli/app/sql/env.py +++ b/animism-align/cli/app/sql/env.py @@ -20,6 +20,7 @@ from app.sql.models.upload import Upload from app.sql.models.media import Media from app.sql.models.episode import Episode from app.sql.models.venue import Venue +from app.sql.models.user import User def run_migrations_offline(): """Run migrations in 'offline' mode. diff --git a/animism-align/cli/app/sql/models/annotation.py b/animism-align/cli/app/sql/models/annotation.py index 2b42eac..a22c941 100644 --- a/animism-align/cli/app/sql/models/annotation.py +++ b/animism-align/cli/app/sql/models/annotation.py @@ -10,7 +10,7 @@ from app.sql.common import db, Base, Session from app.settings import app_cfg class Annotation(Base): - """Table for storing references to graphs""" + """Table for storing references to annotations""" __tablename__ = 'annotation' id = Column(Integer, primary_key=True) type = Column(String(16, convert_unicode=True), nullable=False) diff --git a/animism-align/cli/app/sql/models/paragraph.py b/animism-align/cli/app/sql/models/paragraph.py index 790c9f0..5623db0 100644 --- a/animism-align/cli/app/sql/models/paragraph.py +++ b/animism-align/cli/app/sql/models/paragraph.py @@ -10,7 +10,7 @@ from app.sql.common import db, Base, Session from app.settings import app_cfg class Paragraph(Base): - """Table for storing references to graphs""" + """Table for storing paragraphs, which contain annotations""" __tablename__ = 'paragraph' id = Column(Integer, primary_key=True) type = Column(String(16, convert_unicode=True), nullable=False) diff --git a/animism-align/cli/app/sql/models/user.py b/animism-align/cli/app/sql/models/user.py new file mode 100644 index 0000000..bbc6eef --- /dev/null +++ b/animism-align/cli/app/sql/models/user.py @@ -0,0 +1,33 @@ +from sqlalchemy import create_engine, Table, Column, Text, String, Integer, Boolean, Float, DateTime, JSON, ForeignKey +from sqlalchemy.orm import relationship +import sqlalchemy.sql.functions as func +from sqlalchemy_utc import UtcDateTime, utcnow +from wtforms_alchemy import ModelForm + +from app.sql.common import db, Base, Session + +from app.settings import app_cfg + +class User(Base): + """Table for storing the user list""" + __tablename__ = 'user' + id = Column(Integer, primary_key=True) + username = Column(String(256, convert_unicode=True), nullable=False) + password = Column(String(256, convert_unicode=True), nullable=False) + is_admin = Column(Boolean, default=False) + settings = Column(JSON, default={}, nullable=True) + + def toJSON(self): + return { + 'id': self.id, + 'username': self.username, + 'is_admin': self.is_admin, + 'settings': self.settings, + } + +class UserForm(ModelForm): + class Meta: + model = User + exclude = ['settings'] + def get_session(): + return Session() diff --git a/animism-align/cli/app/sql/versions/202103021415_add_user_table.py b/animism-align/cli/app/sql/versions/202103021415_add_user_table.py new file mode 100644 index 0000000..8e0d70f --- /dev/null +++ b/animism-align/cli/app/sql/versions/202103021415_add_user_table.py @@ -0,0 +1,31 @@ +"""add user table + +Revision ID: 5de5fdfbe69a +Revises: a21872d09bbc +Create Date: 2021-03-02 14:15:43.084353 + +""" +from alembic import op +import sqlalchemy as sa +import sqlalchemy_utc + + +# revision identifiers, used by Alembic. +revision = '5de5fdfbe69a' +down_revision = 'a21872d09bbc' +branch_labels = None +depends_on = None + + +def upgrade(): + op.create_table('user', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=256, _expect_unicode=True), nullable=False), + sa.Column('password', sa.String(length=256, _expect_unicode=True), nullable=False), + sa.Column('is_admin', sa.Boolean(), nullable=True), + sa.Column('settings', sa.JSON(), nullable=True), + sa.PrimaryKeyConstraint('id') + ) + +def downgrade(): + op.drop_table('user') |
