Flash message for insufficient funding

This commit is contained in:
graham-dds
2019-12-10 11:13:06 -05:00
parent cde3d7f6aa
commit 3b265b0eb6
5 changed files with 36 additions and 18 deletions

View File

@@ -25,12 +25,20 @@ class Reports:
clin_spending[jedi_clin.name]["obligated"] = sum(
clin.obligated_amount for clin in clins
)
return [
{
"name": clin,
"invoiced": clin_spending[clin].get("invoiced", 0),
"estimated": clin_spending[clin].get("estimated", 0),
"obligated": clin_spending[clin].get("obligated", 0),
}
for clin in sorted(clin_spending.keys())
]
output = []
for clin in clin_spending.keys():
invoiced = clin_spending[clin].get("invoiced", 0)
estimated = clin_spending[clin].get("estimated", 0)
obligated = clin_spending[clin].get("obligated", 0)
remaining = obligated - (invoiced + estimated)
output.append(
{
"name": clin,
"invoiced": invoiced,
"estimated": estimated,
"obligated": obligated,
"remaining": remaining,
}
)
return output

View File

@@ -35,6 +35,12 @@ def create_portfolio():
@user_can(Permissions.VIEW_PORTFOLIO_REPORTS, message="view portfolio reports")
def reports(portfolio_id):
portfolio = Portfolios.get(g.current_user, portfolio_id)
current_obligated_funds = Reports.obligated_funds_by_JEDI_clin(portfolio)
if any(map(lambda clin: clin["remaining"] < 0, current_obligated_funds)):
flash("insufficient_funds")
# wrapped in str() because the sum of obligated funds returns a Decimal object
total_portfolio_value = str(
sum(
@@ -46,11 +52,9 @@ def reports(portfolio_id):
"portfolios/reports/index.html",
portfolio=portfolio,
total_portfolio_value=total_portfolio_value,
current_obligated_funds=Reports.obligated_funds_by_JEDI_clin(portfolio),
current_obligated_funds=current_obligated_funds,
expired_task_orders=Reports.expired_task_orders(portfolio),
monthly_spending=Reports.monthly_spending(portfolio),
current_month=current_month,
prev_month=prev_month,
retrieved=datetime.now(), # mocked datetime of reporting data retrival
)

View File

@@ -96,6 +96,11 @@ MESSAGES = {
"message_template": "<p>Please see below.</p>",
"category": "error",
},
"insufficient_funds": {
"title_template": "Insufficient Funds",
"message_template": "",
"category": "warning",
},
"logged_out": {
"title_template": translate("flash.logged_out"),
"message_template": """