Merge pull request #593 from dod-ccpo/to-funding-status-alerts
TO Statuses on Portfolio Funding Page
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from enum import Enum
|
||||
from datetime import date
|
||||
|
||||
import pendulum
|
||||
from sqlalchemy import Column, Numeric, String, ForeignKey, Date, Integer
|
||||
@@ -117,6 +118,11 @@ class TaskOrder(Base, mixins.TimestampsMixin):
|
||||
def display_status(self):
|
||||
return self.status.value
|
||||
|
||||
@property
|
||||
def days_to_expiration(self):
|
||||
if self.end_date:
|
||||
return (self.end_date - date.today()).days
|
||||
|
||||
@property
|
||||
def budget(self):
|
||||
return sum(
|
||||
|
@@ -26,6 +26,7 @@ def portfolio_funding(portfolio_id):
|
||||
"start_date",
|
||||
"end_date",
|
||||
"display_status",
|
||||
"days_to_expiration",
|
||||
"balance",
|
||||
]
|
||||
}
|
||||
@@ -45,6 +46,7 @@ def portfolio_funding(portfolio_id):
|
||||
if active_task_orders
|
||||
else None
|
||||
)
|
||||
funded = len(active_task_orders) > 1
|
||||
total_balance = sum([task_order["balance"] for task_order in active_task_orders])
|
||||
|
||||
return render_template(
|
||||
@@ -54,6 +56,7 @@ def portfolio_funding(portfolio_id):
|
||||
active_task_orders=active_task_orders,
|
||||
expired_task_orders=task_orders_by_status.get(TaskOrderStatus.EXPIRED, []),
|
||||
funding_end_date=funding_end_date,
|
||||
funded=funded,
|
||||
total_balance=total_balance,
|
||||
)
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
from flask.json import JSONEncoder
|
||||
from datetime import date
|
||||
from atst.models.attachment import Attachment
|
||||
|
||||
|
||||
@@ -6,4 +7,6 @@ class CustomJSONEncoder(JSONEncoder):
|
||||
def default(self, obj):
|
||||
if isinstance(obj, Attachment):
|
||||
return obj.filename
|
||||
if isinstance(obj, date):
|
||||
return obj.strftime("%Y-%m-%d")
|
||||
return JSONEncoder.default(self, obj)
|
||||
|
Reference in New Issue
Block a user