diff --git a/atst/models/clin.py b/atst/models/clin.py
index dd4bdd76..2bba6a3c 100644
--- a/atst/models/clin.py
+++ b/atst/models/clin.py
@@ -28,6 +28,15 @@ class CLIN(Base, mixins.TimestampsMixin):
obligated_amount = Column(Numeric(scale=2), nullable=False)
jedi_clin_type = Column(SQLAEnum(JEDICLINType, native_enum=False), nullable=False)
+ #
+ # NOTE: For now obligated CLINS are CLIN 1 + CLIN 3
+ #
+ def is_obligated(self):
+ return self.jedi_clin_type in [
+ JEDICLINType.JEDI_CLIN_1,
+ JEDICLINType.JEDI_CLIN_3,
+ ]
+
def to_dictionary(self):
return {
c.name: getattr(self, c.name)
diff --git a/styles/elements/_icon_link.scss b/styles/elements/_icon_link.scss
index 645e0112..f7d1b69e 100644
--- a/styles/elements/_icon_link.scss
+++ b/styles/elements/_icon_link.scss
@@ -82,6 +82,12 @@
@include icon-link-color($color-black-light, $color-gray-lightest);
}
+ &.icon-link--download {
+ @include icon-link-color($color-black) .icon {
+ @include icon-color($color-green);
+ }
+ }
+
&.icon-link--disabled {
opacity: 0.3;
text-decoration: none;
diff --git a/templates/portfolios/task_orders/review.html b/templates/portfolios/task_orders/review.html
index e52d1704..51f9bec9 100644
--- a/templates/portfolios/task_orders/review.html
+++ b/templates/portfolios/task_orders/review.html
@@ -34,66 +34,74 @@
- Review your task order
- Check to make sure the information you entered is correct. After submission, you will confirm this task order was signed by a contracting officer. Thereafter, you will be informed as soon as CCPO completes their review.
+
+ {{ "task_orders.review.review_your_task_order" | translate }}
+
+
+ {{ "task_orders.review.check_paragraph" | translate }}
+
-
Task order number - 10 digit found in your system of record
+
+ {{ "task_orders.review.task_order_number" | translate }}
+
{{task_order.number}}
-
Funding summary
-
CLIN 1: Unclassified Cloud Services 001
+
+ {{ "task_orders.review.funding_summary" | translate }}
+
+
+ {% for clin in task_order.clins %}
+
+ {{ "{}".format(clin.jedi_clin_type) | translate}}
+
- Amount |
- Obligated |
- PoP Start |
- PoP End |
- LOA |
+ {{ "task_orders.review.clins.amount" | translate }} |
+ {{ "task_orders.review.clins.obligated" | translate }} |
+ {{ "task_orders.review.clins.pop_start" | translate }} |
+ {{ "task_orders.review.clins.pop_end" | translate }} |
+ {{ "task_orders.review.clins.loa" | translate }} |
- $500,000 |
- Yes |
- 9/07/19 |
- 9/07/20 |
- 34820394 |
-
-
-
-
-
CLIN 2: Unclassified Cloud Services 002
-
-
-
- Amount |
- Obligated |
- PoP Start |
- PoP End |
- LOA |
-
-
-
-
-
- $300,000 |
- No |
- 9/08/20 |
- 9/08/21 |
- q9384751934 |
+ {{ clin.obligated_amount | dollars }} |
+
+ {% if clin.is_obligated() %}
+ {{ "common.yes" | translate }}
+ {% else %}
+ {{ "common.no" | translate }}
+ {% endif %}
+ |
+ {{ clin.start_date | formattedDate }} |
+ {{ clin.end_date | formattedDate }} |
+
+ {% for loa in clin.loas %}
+ {{ loa }}
+
+ {% endfor %}
+ |
+ {% endfor %}
-
Supporting document
-
{{ Icon('ok',classes="icon-validation") }}document
+
+ {{ "task_orders.review.supporting_document.title" | translate }}
+
+
{{ TotalsBox(task_order=task_order) }}
diff --git a/tests/models/test_clin.py b/tests/models/test_clin.py
new file mode 100644
index 00000000..b3687b77
--- /dev/null
+++ b/tests/models/test_clin.py
@@ -0,0 +1,18 @@
+from atst.models import CLIN
+from atst.models.clin import JEDICLINType
+
+from tests.factories import *
+
+
+def test_is_obligated():
+ clin_1 = CLINFactory.create(jedi_clin_type=JEDICLINType.JEDI_CLIN_1)
+ assert clin_1.is_obligated()
+
+ clin_2 = CLINFactory.create(jedi_clin_type=JEDICLINType.JEDI_CLIN_2)
+ assert not clin_2.is_obligated()
+
+ clin_3 = CLINFactory.create(jedi_clin_type=JEDICLINType.JEDI_CLIN_3)
+ assert clin_3.is_obligated()
+
+ clin_4 = CLINFactory.create(jedi_clin_type=JEDICLINType.JEDI_CLIN_4)
+ assert not clin_4.is_obligated()
diff --git a/translations.yaml b/translations.yaml
index 84e42d25..9d824bb2 100644
--- a/translations.yaml
+++ b/translations.yaml
@@ -41,6 +41,8 @@ common:
hide: Hide
manage: manage
members: Members
+ 'yes': 'Yes'
+ 'no': 'No'
officer_helpers:
underscore_to_friendly:
contracting_officer: Contracting Officer
@@ -606,6 +608,19 @@ requests:
questions_title_text: Questions related to JEDI Cloud migration
rationalization_software_systems_tooltip: Rationalization is the DoD process to determine whether the application should move to the cloud.
task_orders:
+ review:
+ review_your_task_order: Review your task order
+ funding_summary: Funding summary
+ task_order_number: Task order number - 10 digit found in your system of record
+ check_paragraph: Check to make sure the information you entered is correct. After submission, you will confirm this task order was signed by a contracting officer. Thereafter, you will be informed as soon as CCPO completes their review.
+ supporting_document:
+ title: Supporting document
+ clins:
+ amount: Amount
+ obligated: Obligated
+ pop_start: PoP Start
+ pop_end: PoP End
+ loa: LOA
form:
draft_alert_title: Your information has been saved
draft_alert_message: You can return to the Task Order Builder to enter missing information. Once you are finished, you’ll be ready to submit this request.
@@ -731,6 +746,11 @@ task_orders:
security: '
Security Officer ({security_officer}) completes a Security Requirements Document.
Send a reminder'
sign: '
Contracting Officer ({contracting_officer}) verifies funding to unlock cloud services.'
whats_next: Here are the remaining steps to get your task order approved.
+JEDICLINType:
+ JEDI_CLIN_1: 'CLIN 1:'
+ JEDI_CLIN_2: 'CLIN 2: Classified Cloud Services - 0002'
+ JEDI_CLIN_3: 'CLIN 3:'
+ JEDI_CLIN_4: 'CLIN 4:'
testing:
example_string: Hello World
example_with_variables: 'Hello, {name}!'