From 2c2b69affea33f8c63194bd77f01c0bae8768307 Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Fri, 13 Dec 2019 10:54:00 -0500 Subject: [PATCH] Fix TO index blank states and number type issue --- atst/models/task_order.py | 3 +- atst/routes/task_orders/index.py | 5 +- templates/task_orders/index.html | 82 +++++++++++++++++--------------- translations.yaml | 2 + 4 files changed, 51 insertions(+), 41 deletions(-) diff --git a/atst/models/task_order.py b/atst/models/task_order.py index 64693831..7baef38d 100644 --- a/atst/models/task_order.py +++ b/atst/models/task_order.py @@ -1,4 +1,5 @@ from enum import Enum +from decimal import Decimal from sqlalchemy import Column, DateTime, ForeignKey, String from sqlalchemy.ext.hybrid import hybrid_property @@ -172,7 +173,7 @@ class TaskOrder(Base, mixins.TimestampsMixin): @property def invoiced_funds(self): # TODO: implement this using reporting data from the CSP - return self.total_obligated_funds * 75 / 100 + return self.total_obligated_funds * Decimal(0.75) @property def display_status(self): diff --git a/atst/routes/task_orders/index.py b/atst/routes/task_orders/index.py index a3d72cf7..e02780ca 100644 --- a/atst/routes/task_orders/index.py +++ b/atst/routes/task_orders/index.py @@ -28,5 +28,8 @@ def review_task_order(task_order_id): def portfolio_funding(portfolio_id): portfolio = Portfolios.get(g.current_user, portfolio_id) task_orders = TaskOrders.sort_by_status(portfolio.task_orders) + to_count = len(portfolio.task_orders) # TODO: Get expended amount from the CSP - return render_template("task_orders/index.html", task_orders=task_orders) + return render_template( + "task_orders/index.html", task_orders=task_orders, to_count=to_count + ) diff --git a/templates/task_orders/index.html b/templates/task_orders/index.html index dfabbd02..a272fade 100644 --- a/templates/task_orders/index.html +++ b/templates/task_orders/index.html @@ -15,45 +15,49 @@ {% macro TaskOrderList(task_orders, status) %}
- {% call Accordion(title=status, id=status, heading_tag="h4") %} - {% for task_order in task_orders %} - {% set to_number %} - {% if task_order.number != "" %} - Task Order #{{ task_order.number }} - {% else %} - New Task Order - {% endif %} - {% endset %} -
-

{{ to_number }} {{ Icon("caret_right", classes="icon--tiny icon--primary" ) }}

- {% if status != 'Expired' -%} -
-
-
- Current Period of Performance -
-

- {{ task_order.start_date | formattedDate(formatter="%b %d, %Y") }} - - - {{ task_order.end_date | formattedDate(formatter="%b %d, %Y") }} -

+ {% call Accordion(title=("task_orders.status_list_title"|translate({'status': status})), id=status, heading_tag="h4") %} + {% if task_orders|length > 0 %} + {% for task_order in task_orders %} + {% set to_number %} + {% if task_order.number != "" %} + Task Order #{{ task_order.number }} + {% else %} + New Task Order + {% endif %} + {% endset %} +
+

{{ to_number }} {{ Icon("caret_right", classes="icon--tiny icon--primary" ) }}

+ {% if status != 'Expired' -%} +
+
+
+ Current Period of Performance +
+

+ {{ task_order.start_date | formattedDate(formatter="%b %d, %Y") }} + - + {{ task_order.end_date | formattedDate(formatter="%b %d, %Y") }} +

+
+
+
Total Value
+

{{ task_order.total_contract_amount | dollars }}

+
+
+
Total Obligated
+

{{ task_order.total_obligated_funds | dollars }}

+
+
+
Total Expended
+

{{ task_order.invoiced_funds | dollars }}

+
-
-
Total Value
-

{{ task_order.total_contract_amount | dollars }}

-
-
-
Total Obligated
-

{{ task_order.total_obligated_funds | dollars }}

-
-
-
Total Expended
-

{{ task_order.invoiced_funds | dollars }}

-
-
- {%- endif %} -
- {% endfor %} + {%- endif %} +
+ {% endfor %} + {% else %} + {{ "task_orders.status_empty_state" | translate({ 'status': status }) }} + {% endif %} {% endcall %}
{% endmacro %} @@ -71,7 +75,7 @@
- {% if task_orders %} + {% if to_count > 0 %} {% call AccordionList() %} {% for status, to_list in task_orders.items() %} {{ TaskOrderList(to_list, status) }} diff --git a/translations.yaml b/translations.yaml index d63b1a5e..cb6b5376 100644 --- a/translations.yaml +++ b/translations.yaml @@ -529,6 +529,8 @@ task_orders: team_title: Your team sign: digital_signature_description: I acknowledge that the uploaded task order contains the required KO signature. + status_empty_state: 'This Portfolio has no {status} Task Orders.' + status_list_title: '{status} Task Orders' JEDICLINType: JEDI_CLIN_1: 'IDIQ CLIN 0001 Unclassified IaaS/PaaS' JEDI_CLIN_2: 'IDIQ CLIN 0002 Classified IaaS/PaaS'