new workspace and task order routes
This commit is contained in:
@@ -19,3 +19,4 @@ from .request_review import RequestReview
|
||||
from .request_internal_comment import RequestInternalComment
|
||||
from .audit_event import AuditEvent
|
||||
from .invitation import Invitation
|
||||
from .task_order import TaskOrder
|
||||
|
45
atst/models/task_order.py
Normal file
45
atst/models/task_order.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from sqlalchemy import Column, Integer, String, ForeignKey, Date
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from atst.models import Base, types, mixins
|
||||
|
||||
|
||||
class TaskOrder(Base, mixins.TimestampsMixin):
|
||||
__tablename__ = "task_orders"
|
||||
|
||||
id = types.Id()
|
||||
number = Column(String, unique=True)
|
||||
clin_0001 = Column(Integer)
|
||||
clin_0003 = Column(Integer)
|
||||
clin_1001 = Column(Integer)
|
||||
clin_1003 = Column(Integer)
|
||||
clin_2001 = Column(Integer)
|
||||
clin_2003 = Column(Integer)
|
||||
expiration_date = Column(Date)
|
||||
|
||||
workspace_id = Column(ForeignKey("workspaces.id"))
|
||||
workspace = relationship("Workspace")
|
||||
|
||||
user_id = Column(ForeignKey("users.id"))
|
||||
creator = relationship("User")
|
||||
|
||||
@property
|
||||
def budget(self):
|
||||
return sum(
|
||||
filter(
|
||||
None,
|
||||
[
|
||||
self.clin_0001,
|
||||
self.clin_0003,
|
||||
self.clin_1001,
|
||||
self.clin_1003,
|
||||
self.clin_2001,
|
||||
self.clin_2003,
|
||||
],
|
||||
)
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
return "<TaskOrder(number='{}', budget='{}', expiration_date='{}', id='{}')>".format(
|
||||
self.number, self.budget, self.expiration_date, self.id
|
||||
)
|
@@ -13,10 +13,12 @@ class Workspace(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
||||
|
||||
id = types.Id()
|
||||
name = Column(String)
|
||||
request_id = Column(ForeignKey("requests.id"), nullable=False)
|
||||
request_id = Column(ForeignKey("requests.id"), nullable=True)
|
||||
projects = relationship("Project", back_populates="workspace")
|
||||
roles = relationship("WorkspaceRole")
|
||||
|
||||
task_orders = relationship("TaskOrder")
|
||||
|
||||
@property
|
||||
def owner(self):
|
||||
def _is_workspace_owner(workspace_role):
|
||||
|
Reference in New Issue
Block a user