Add csp_estimate property to task order model

This commit is contained in:
Patrick Smith 2019-01-21 15:55:00 -05:00
parent ebf063f245
commit 2298c5135e

View File

@ -2,10 +2,11 @@ from enum import Enum
import pendulum import pendulum
from sqlalchemy import Column, Numeric, String, ForeignKey, Date, Integer from sqlalchemy import Column, Numeric, String, ForeignKey, Date, Integer
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.types import ARRAY from sqlalchemy.types import ARRAY
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from atst.models import Base, types, mixins from atst.models import Attachment, Base, types, mixins
class Status(Enum): class Status(Enum):
@ -49,7 +50,7 @@ class TaskOrder(Base, mixins.TimestampsMixin):
end_date = Column(Date) end_date = Column(Date)
performance_length = Column(Integer) performance_length = Column(Integer)
attachment_id = Column(ForeignKey("attachments.id")) attachment_id = Column(ForeignKey("attachments.id"))
pdf = relationship("Attachment") _csp_estimate = relationship("Attachment")
clin_01 = Column(Numeric(scale=2)) clin_01 = Column(Numeric(scale=2))
clin_02 = Column(Numeric(scale=2)) clin_02 = Column(Numeric(scale=2))
clin_03 = Column(Numeric(scale=2)) clin_03 = Column(Numeric(scale=2))
@ -72,6 +73,19 @@ class TaskOrder(Base, mixins.TimestampsMixin):
number = Column(String, unique=True) # Task Order Number number = Column(String, unique=True) # Task Order Number
loa = Column(ARRAY(String)) # Line of Accounting (LOA) loa = Column(ARRAY(String)) # Line of Accounting (LOA)
@hybrid_property
def csp_estimate(self):
return self._csp_estimate
@csp_estimate.setter
def csp_estimate(self, new_csp_estimate):
if isinstance(new_csp_estimate, Attachment):
self._csp_estimate = new_csp_estimate
else:
self._csp_estimate = Attachment.attach(
new_csp_estimate, "task_order", self.id
)
@property @property
def is_submitted(self): def is_submitted(self):
return self.number is not None return self.number is not None