diff --git a/alembic/versions/3d346b5c8f19_add_status_enum_to_task_order.py b/alembic/versions/3d346b5c8f19_add_status_enum_to_task_order.py new file mode 100644 index 00000000..61ffe84b --- /dev/null +++ b/alembic/versions/3d346b5c8f19_add_status_enum_to_task_order.py @@ -0,0 +1,31 @@ +"""Add status enum to task_order + +Revision ID: 3d346b5c8f19 +Revises: 71cbe76c3b87 +Create Date: 2019-01-10 13:55:58.934890 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '3d346b5c8f19' +down_revision = '71cbe76c3b87' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('task_orders', sa.Column('status', sa.Enum('PENDING', name='status', native_enum=False), nullable=True)) + # ### end Alembic commands ### + + conn = op.get_bind() + conn.execute("UPDATE task_orders set status = 'PENDING'") + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('task_orders', 'status') + # ### end Alembic commands ### diff --git a/atst/models/task_order.py b/atst/models/task_order.py index 27b6cc06..1d006022 100644 --- a/atst/models/task_order.py +++ b/atst/models/task_order.py @@ -1,10 +1,16 @@ -from sqlalchemy import Column, Numeric, String, ForeignKey, Date +from enum import Enum + +from sqlalchemy import Column, Enum as SQLAEnum, Numeric, String, ForeignKey, Date from sqlalchemy.types import ARRAY from sqlalchemy.orm import relationship from atst.models import Base, types, mixins +class Status(Enum): + PENDING = "pending" + + class TaskOrder(Base, mixins.TimestampsMixin): __tablename__ = "task_orders" @@ -27,6 +33,8 @@ class TaskOrder(Base, mixins.TimestampsMixin): so_id = Column(ForeignKey("users.id")) security_officer = relationship("User", foreign_keys="TaskOrder.so_id") + status = Column(SQLAEnum(Status, native_enum=False, default=Status.PENDING)) + scope = Column(String) # Cloud Project Scope defense_component = Column(String) # Department of Defense Component app_migration = Column(String) # App Migration @@ -67,6 +75,10 @@ class TaskOrder(Base, mixins.TimestampsMixin): def portfolio_name(self): return self.workspace.name + @property + def is_pending(self): + return self.status == Status.PENDING + def to_dictionary(self): return { "portfolio_name": self.portfolio_name, diff --git a/templates/workspaces/task_orders/show.html b/templates/workspaces/task_orders/show.html index 228ffdc7..760a57e5 100644 --- a/templates/workspaces/task_orders/show.html +++ b/templates/workspaces/task_orders/show.html @@ -67,7 +67,7 @@