diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2021-03-06 15:26:36 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2021-03-06 15:26:36 +0100 |
| commit | 9acd74cf1c09a03f832869988c7d14597b26e4c7 (patch) | |
| tree | 2941efe8910ddbd0164edf948d4831a6157e3bb6 /animism-align/cli | |
| parent | 2c170793e9d7e1c61910c908b97eaf1f3cb4de11 (diff) | |
add project controller and model
Diffstat (limited to 'animism-align/cli')
| -rw-r--r-- | animism-align/cli/app/controllers/project_controller.py | 19 | ||||
| -rw-r--r-- | animism-align/cli/app/server/web.py | 2 | ||||
| -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/project.py | 2 | ||||
| -rw-r--r-- | animism-align/cli/app/sql/versions/202103061526_add_project_type.py | 35 |
6 files changed, 59 insertions, 1 deletions
diff --git a/animism-align/cli/app/controllers/project_controller.py b/animism-align/cli/app/controllers/project_controller.py new file mode 100644 index 0000000..c5c8ecb --- /dev/null +++ b/animism-align/cli/app/controllers/project_controller.py @@ -0,0 +1,19 @@ +from flask import request, jsonify, redirect +from flask_classful import route +from werkzeug.datastructures import MultiDict + +from app.sql.common import db, Session +from app.sql.models.project import Project, ProjectForm +from app.controllers.crud_controller import CrudView + +class ProjectView(CrudView): + model = Project + form = ProjectForm + + def on_create(self, session, form, item): + if 'settings' in form: + item.settings = form['settings'] + + def on_update(self, session, form, item): + if 'settings' in form: + item.settings = form['settings'] diff --git a/animism-align/cli/app/server/web.py b/animism-align/cli/app/server/web.py index cb86af0..e48ad4d 100644 --- a/animism-align/cli/app/server/web.py +++ b/animism-align/cli/app/server/web.py @@ -23,6 +23,7 @@ from app.controllers.paragraph_controller import ParagraphView from app.controllers.upload_controller import UploadView from app.controllers.media_controller import MediaView from app.controllers.episode_controller import EpisodeView +from app.controllers.project_controller import ProjectView from app.controllers.venue_controller import VenueView from app.controllers.user_controller import UserView from app.controllers.auth_controller import AuthView @@ -50,6 +51,7 @@ def create_app(script_info=None): UploadView.register(app, route_prefix='/api/v1/') MediaView.register(app, route_prefix='/api/v1/') EpisodeView.register(app, route_prefix='/api/v1/') + ProjectView.register(app, route_prefix='/api/v1/') VenueView.register(app, route_prefix='/api/v1/') UserView.register(app, route_prefix='/api/v1/') AuthView.register(app, route_prefix='/api/v1/') diff --git a/animism-align/cli/app/sql/common.py b/animism-align/cli/app/sql/common.py index 9f89c7d..564c1e3 100644 --- a/animism-align/cli/app/sql/common.py +++ b/animism-align/cli/app/sql/common.py @@ -34,6 +34,7 @@ from app.sql.models.annotation import Annotation from app.sql.models.paragraph import Paragraph from app.sql.models.upload import Upload from app.sql.models.media import Media +from app.sql.models.project import Project 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 da29cf4..3eb6192 100644 --- a/animism-align/cli/app/sql/env.py +++ b/animism-align/cli/app/sql/env.py @@ -18,6 +18,7 @@ from app.sql.models.annotation import Annotation from app.sql.models.paragraph import Paragraph from app.sql.models.upload import Upload from app.sql.models.media import Media +from app.sql.models.project import Project 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/models/project.py b/animism-align/cli/app/sql/models/project.py index eb94fd6..e32a64b 100644 --- a/animism-align/cli/app/sql/models/project.py +++ b/animism-align/cli/app/sql/models/project.py @@ -26,7 +26,7 @@ class Project(Base): class ProjectForm(ModelForm): class Meta: - model = Episode + model = Project exclude = ['settings'] def get_session(): return Session() diff --git a/animism-align/cli/app/sql/versions/202103061526_add_project_type.py b/animism-align/cli/app/sql/versions/202103061526_add_project_type.py new file mode 100644 index 0000000..221c26c --- /dev/null +++ b/animism-align/cli/app/sql/versions/202103061526_add_project_type.py @@ -0,0 +1,35 @@ +"""add project type + +Revision ID: 0664d913e352 +Revises: 8c3c66f68ce2 +Create Date: 2021-03-06 15:26:08.400413 + +""" +from alembic import op +import sqlalchemy as sa +import sqlalchemy_utc + + +# revision identifiers, used by Alembic. +revision = '0664d913e352' +down_revision = '8c3c66f68ce2' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('project', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('title', sa.String(length=256, _expect_unicode=True), nullable=False), + sa.Column('is_live', sa.Boolean(), nullable=True), + sa.Column('settings', sa.JSON(), nullable=True), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('project') + # ### end Alembic commands ### |
