diff --git a/atst/routes/portfolios/task_orders.py b/atst/routes/portfolios/task_orders.py index 8c326775..d5c6b78f 100644 --- a/atst/routes/portfolios/task_orders.py +++ b/atst/routes/portfolios/task_orders.py @@ -1,4 +1,5 @@ from collections import defaultdict +from operator import itemgetter from flask import g, render_template, url_for @@ -34,12 +35,20 @@ def portfolio_task_orders(portfolio_id): ) task_orders_by_status[task_order.status].append(serialized_task_order) + active_task_orders = task_orders_by_status.get(TaskOrderStatus.ACTIVE, []) + funding_end_date = ( + sorted(active_task_orders, key=itemgetter("end_date"))[-1]["end_date"] + if active_task_orders + else None + ) + return render_template( "portfolios/task_orders/index.html", portfolio=portfolio, pending_task_orders=task_orders_by_status.get(TaskOrderStatus.PENDING, []), - active_task_orders=task_orders_by_status.get(TaskOrderStatus.ACTIVE, []), + active_task_orders=active_task_orders, expired_task_orders=task_orders_by_status.get(TaskOrderStatus.EXPIRED, []), + funding_end_date=funding_end_date, ) diff --git a/styles/components/_portfolio_layout.scss b/styles/components/_portfolio_layout.scss index 6a6db378..ca546914 100644 --- a/styles/components/_portfolio_layout.scss +++ b/styles/components/_portfolio_layout.scss @@ -31,6 +31,27 @@ } .portfolio-funding { + .portfolio-funding__header { + padding: 0; + margin: 0 $gap; + + align-items: center; + + .portfolio-funding__header--funded-through { + padding: 2 * $gap; + flex-grow: 1; + text-align: left; + font-weight: bold; + } + + .funded { + color: $color-green; + .icon { + @include icon-color($color-green); + } + } + } + .pending-task-order { background-color: $color-gold-lightest; diff --git a/templates/portfolios/task_orders/index.html b/templates/portfolios/task_orders/index.html index 9d878413..ea5ad818 100644 --- a/templates/portfolios/task_orders/index.html +++ b/templates/portfolios/task_orders/index.html @@ -73,6 +73,24 @@ {% endmacro %}
+ +
+
+

Portfolio Funding

+
+ {% if funding_end_date %} + {{ Icon('ok') }} + Funded through + + + {% endif %} +
+ Start a New Task Order +
+
+ {% for task_order in pending_task_orders %}