Update tables to match business logic

This commit is contained in:
leigh-mil
2019-11-25 14:16:15 -05:00
parent 699176fc91
commit 614514d6a2
23 changed files with 328 additions and 79 deletions

View File

@@ -11,10 +11,8 @@ class TaskOrders(BaseDomainClass):
resource_name = "task_order"
@classmethod
def create(cls, creator, portfolio_id, number, clins, pdf):
task_order = TaskOrder(
portfolio_id=portfolio_id, creator=creator, number=number, pdf=pdf
)
def create(cls, portfolio_id, number, clins, pdf):
task_order = TaskOrder(portfolio_id=portfolio_id, number=number, pdf=pdf)
db.session.add(task_order)
db.session.commit()

View File

@@ -12,7 +12,10 @@ class ApplicationInvitation(
__tablename__ = "application_invitations"
application_role_id = Column(
UUID(as_uuid=True), ForeignKey("application_roles.id"), index=True
UUID(as_uuid=True),
ForeignKey("application_roles.id"),
index=True,
nullable=False,
)
role = relationship(
"ApplicationRole",

View File

@@ -46,7 +46,9 @@ class ApplicationRole(
UUID(as_uuid=True), ForeignKey("users.id"), index=True, nullable=True
)
status = Column(SQLAEnum(Status, native_enum=False), default=Status.PENDING)
status = Column(
SQLAEnum(Status, native_enum=False), default=Status.PENDING, nullable=False
)
permission_sets = relationship(
"PermissionSet", secondary=application_roles_permission_sets

View File

@@ -23,12 +23,12 @@ class CLIN(Base, mixins.TimestampsMixin):
task_order_id = Column(ForeignKey("task_orders.id"), nullable=False)
task_order = relationship("TaskOrder")
number = Column(String, nullable=True)
start_date = Column(Date, nullable=True)
end_date = Column(Date, nullable=True)
total_amount = Column(Numeric(scale=2), nullable=True)
obligated_amount = Column(Numeric(scale=2), nullable=True)
jedi_clin_type = Column(SQLAEnum(JEDICLINType, native_enum=False), nullable=True)
number = Column(String, nullable=False)
start_date = Column(Date, nullable=False)
end_date = Column(Date, nullable=False)
total_amount = Column(Numeric(scale=2), nullable=False)
obligated_amount = Column(Numeric(scale=2), nullable=False)
jedi_clin_type = Column(SQLAEnum(JEDICLINType, native_enum=False), nullable=False)
#
# NOTE: For now obligated CLINS are CLIN 1 + CLIN 3

View File

@@ -43,7 +43,9 @@ class EnvironmentRole(
COMPLETED = "completed"
DISABLED = "disabled"
status = Column(SQLAEnum(Status, native_enum=False), default=Status.PENDING)
status = Column(
SQLAEnum(Status, native_enum=False), default=Status.PENDING, nullable=False
)
def __repr__(self):
return "<EnvironmentRole(role='{}', user='{}', environment='{}', id='{}')>".format(

View File

@@ -31,23 +31,29 @@ class InvitesMixin(object):
@declared_attr
def inviter_id(cls):
return Column(UUID(as_uuid=True), ForeignKey("users.id"), index=True)
return Column(
UUID(as_uuid=True), ForeignKey("users.id"), index=True, nullable=False
)
@declared_attr
def inviter(cls):
return relationship("User", foreign_keys=[cls.inviter_id])
status = Column(SQLAEnum(Status, native_enum=False, default=Status.PENDING))
status = Column(
SQLAEnum(Status, native_enum=False, default=Status.PENDING, nullable=False)
)
expiration_time = Column(TIMESTAMP(timezone=True))
expiration_time = Column(TIMESTAMP(timezone=True), nullable=False)
token = Column(String, index=True, default=lambda: secrets.token_urlsafe())
token = Column(
String, index=True, default=lambda: secrets.token_urlsafe(), nullable=False
)
email = Column(String, nullable=False)
dod_id = Column(String)
first_name = Column(String)
last_name = Column(String)
dod_id = Column(String, nullable=False)
first_name = Column(String, nullable=False)
last_name = Column(String, nullable=False)
phone_number = Column(String)
phone_ext = Column(String)

View File

@@ -18,8 +18,10 @@ class Portfolio(
__tablename__ = "portfolios"
id = types.Id()
name = Column(String)
defense_component = Column(String) # Department of Defense Component
name = Column(String, nullable=False)
defense_component = Column(
String, nullable=False
) # Department of Defense Component
app_migration = Column(String) # App Migration
complexity = Column(ARRAY(String)) # Application Complexity

View File

@@ -12,7 +12,7 @@ class PortfolioInvitation(
__tablename__ = "portfolio_invitations"
portfolio_role_id = Column(
UUID(as_uuid=True), ForeignKey("portfolio_roles.id"), index=True
UUID(as_uuid=True), ForeignKey("portfolio_roles.id"), index=True, nullable=False
)
role = relationship(
"PortfolioRole",

View File

@@ -52,7 +52,9 @@ class PortfolioRole(
UUID(as_uuid=True), ForeignKey("users.id"), index=True, nullable=True
)
status = Column(SQLAEnum(Status, native_enum=False), default=Status.PENDING)
status = Column(
SQLAEnum(Status, native_enum=False), default=Status.PENDING, nullable=False
)
permission_sets = relationship(
"PermissionSet", secondary=portfolio_roles_permission_sets

View File

@@ -33,12 +33,9 @@ class TaskOrder(Base, mixins.TimestampsMixin):
id = types.Id()
portfolio_id = Column(ForeignKey("portfolios.id"))
portfolio_id = Column(ForeignKey("portfolios.id"), nullable=False)
portfolio = relationship("Portfolio")
user_id = Column(ForeignKey("users.id"))
creator = relationship("User", foreign_keys="TaskOrder.user_id")
pdf_attachment_id = Column(ForeignKey("attachments.id"))
_pdf = relationship("Attachment", foreign_keys=[pdf_attachment_id])
number = Column(String) # Task Order Number

View File

@@ -56,8 +56,8 @@ class User(
email = Column(String)
dod_id = Column(String, unique=True, nullable=False)
first_name = Column(String)
last_name = Column(String)
first_name = Column(String, nullable=False)
last_name = Column(String, nullable=False)
phone_number = Column(String)
phone_ext = Column(String)
service_branch = Column(String)

View File

@@ -66,7 +66,7 @@ def update_task_order(
task_order = TaskOrders.update(task_order_id, **form.data)
portfolio_id = task_order.portfolio_id
else:
task_order = TaskOrders.create(g.current_user, portfolio_id, **form.data)
task_order = TaskOrders.create(portfolio_id, **form.data)
return redirect(url_for(next_page, task_order_id=task_order.id))
else:
@@ -181,9 +181,7 @@ def cancel_edit(task_order_id=None, portfolio_id=None):
if task_order_id:
task_order = TaskOrders.update(task_order_id, **form.data)
else:
task_order = TaskOrders.create(
g.current_user, portfolio_id, **form.data
)
task_order = TaskOrders.create(portfolio_id, **form.data)
elif not save and task_order_id:
TaskOrders.delete(task_order_id)