mirror of
https://github.com/sartography/cr-connect-workflow.git
synced 2025-02-23 13:18:35 +00:00
51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
"""empty message
|
|
|
|
Revision ID: f214ee53ca26
|
|
Revises: cf57eba23a16
|
|
Create Date: 2022-03-12 15:03:32.193996
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
from crc.models.study import StudyModel, ProgressStatus
|
|
|
|
revision = 'f214ee53ca26'
|
|
down_revision = 'cf57eba23a16'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
op.execute('ALTER TYPE progressstatus RENAME TO progressstatus_old;')
|
|
op.execute(
|
|
"CREATE TYPE progressstatus AS ENUM('in_progress', 'submitted_for_pre_review', 'in_pre_review', "
|
|
"'returned_from_pre_review', 'pre_review_complete', 'agenda_date_set', 'approved', "
|
|
"'approved_with_conditions', 'deferred', 'disapproved', "
|
|
"'ready_for_pre_review', 'resubmitted_for_pre_review')")
|
|
op.execute("ALTER TABLE study ALTER COLUMN progress_status TYPE "
|
|
"progressstatus USING progress_status::text::progressstatus;")
|
|
op.execute('DROP TYPE progressstatus_old;')
|
|
|
|
def downgrade():
|
|
# Removing ready_for_pre_review, resubmitted_for_pre_review, so change those to in_progress first
|
|
bind = op.get_bind()
|
|
session = sa.orm.Session(bind=bind)
|
|
session.flush()
|
|
studies = session.query(StudyModel).filter(
|
|
StudyModel.progress_status == 'ready_for_pre_review' or StudyModel.progress_status == 'resubmitted_for_pre_review').all()
|
|
for study in studies:
|
|
study.progress_status = ProgressStatus('in_progress')
|
|
session.commit()
|
|
|
|
# delete those statuses from progress status
|
|
op.execute('ALTER TYPE progressstatus RENAME TO progressstatus_old;')
|
|
op.execute("CREATE TYPE progressstatus AS ENUM('in_progress', 'submitted_for_pre_review', "
|
|
"'in_pre_review', 'returned_from_pre_review', 'pre_review_complete', "
|
|
"'agenda_date_set', 'approved', 'approved_with_conditions', 'deferred', 'disapproved')")
|
|
op.execute("ALTER TABLE study ALTER COLUMN progress_status"
|
|
" TYPE progressstatus USING progress_status::text::progressstatus;")
|
|
op.execute('DROP TYPE progressstatus_old;')
|