diff --git a/atst/filters.py b/atst/filters.py index d0fe5bf7..4ab582b2 100644 --- a/atst/filters.py +++ b/atst/filters.py @@ -97,6 +97,19 @@ def renderAuditEvent(event): return render_template("audit_log/events/default.html", event=event) +def removeHtml(text): + html_tags = re.compile("<.*?>") + return re.sub(html_tags, "", text) + + +def normalizeOrder(title): + # reorders titles from "Army, Department of the" to "Department of the Army" + text = title.split(", ") + reordered_text = text[0:-1] + reordered_text.insert(0, text[-1]) + return " ".join(reordered_text) + + def register_filters(app): app.jinja_env.filters["iconSvg"] = iconSvg app.jinja_env.filters["dollars"] = dollars @@ -110,6 +123,8 @@ def register_filters(app): app.jinja_env.filters["dateFromString"] = dateFromString app.jinja_env.filters["pageWindow"] = pageWindow app.jinja_env.filters["renderAuditEvent"] = renderAuditEvent + app.jinja_env.filters["removeHtml"] = removeHtml + app.jinja_env.filters["normalizeOrder"] = normalizeOrder @contextfilter def translateWithoutCache(context, *kwargs): diff --git a/atst/models/task_order.py b/atst/models/task_order.py index 797ff802..340be9af 100644 --- a/atst/models/task_order.py +++ b/atst/models/task_order.py @@ -4,11 +4,8 @@ import pendulum from sqlalchemy import Column, Numeric, String, ForeignKey, Date, Integer from sqlalchemy.types import ARRAY from sqlalchemy.orm import relationship -import re from atst.models import Base, types, mixins -from atst.utils.localization import translate -from atst.filters import usPhone class Status(Enum): @@ -105,62 +102,6 @@ class TaskOrder(Base, mixins.TimestampsMixin): def is_pending(self): return self.status == Status.PENDING - @property - def defense_component_description(self): - if self.defense_component: - return self.normalize_order(self.defense_component) - else: - return None - - @property - def app_migration_description(self): - if self.app_migration: - text = translate( - "forms.task_order.app_migration.{}".format(self.app_migration) - ) - return self.remove_html(text) - else: - return None - - @property - def native_apps_description(self): - if self.native_apps: - return translate( - "task_orders.new.review.{}_native".format(self.native_apps) - ) - else: - return None - - @property - def team_experience_description(self): - if self.team_experience: - return translate( - "forms.task_order.team_experience.{}".format(self.team_experience) - ) - else: - return None - - @property - def performance_length_description(self): - if self.performance_length: - return translate( - "forms.task_order.performance_length.{}".format(self.performance_length) - ) - else: - return None - - @property - def ko_phone(self): - return usPhone(self.ko_phone_number) - - @property - def cor_phone(self): - return usPhone(self.cor_phone_number) - - @property - def so_phone(self): - return usPhone(self.so_phone_number) - def to_dictionary(self): return { "portfolio_name": self.portfolio_name, @@ -171,16 +112,6 @@ class TaskOrder(Base, mixins.TimestampsMixin): }, } - def remove_html(self, text): - html_tags = re.compile("<.*?>") - return re.sub(html_tags, "", text) - - def normalize_order(self, department): - text = department.split(", ") - reordered_text = text[0:-1] - reordered_text.insert(0, text[-1]) - return " ".join(reordered_text) - def __repr__(self): return "".format( self.number, self.budget, self.end_date, self.id diff --git a/templates/task_orders/new/review.html b/templates/task_orders/new/review.html index cad98d48..49c1954c 100644 --- a/templates/task_orders/new/review.html +++ b/templates/task_orders/new/review.html @@ -18,6 +18,27 @@ {% endif %} {% endmacro %} +{% if task_order.defense_component %} + {% set defense_component_description = task_order.defense_component | normalizeOrder %} +{% endif %} + +{% if task_order.app_migration %} + {% set app_migration_description = "forms.task_order.app_migration.{}".format(task_order.app_migration) | translate | removeHtml %} +{% endif %} + +{% if task_order.native_apps %} + {% set native_apps_description = "task_orders.new.review.{}_native".format(task_order.native_apps) | translate %} +{% endif %} + +{% if task_order.team_experience %} + {% set team_experience_description = "forms.task_order.team_experience.{}".format(task_order.team_experience) | translate %} +{% endif %} + +{% if task_order.performance_length %} + {% set performance_length_description = "forms.task_order.performance_length.{}".format(task_order.performance_length) | translate %} +{% endif %} + +

{{ "task_orders.new.review.app_info"| translate }} {{ TOEditLink(screen=1) }}

@@ -28,7 +49,7 @@

{{ "task_orders.new.review.dod"| translate }}

-

{{ task_order.defense_component_description or RequiredLabel() }}

+

{{ defense_component_description or RequiredLabel() }}

@@ -44,12 +65,12 @@

{{ "task_orders.new.review.migration"| translate }}

-

{{ task_order.app_migration_description or RequiredLabel() }}

+

{{ app_migration_description or RequiredLabel() }}

{{ "task_orders.new.review.native_apps"| translate }}

-

{{ task_order.native_apps_description or RequiredLabel() }}

+

{{ native_apps_description or RequiredLabel() }}

@@ -89,7 +110,7 @@

{{ "task_orders.new.review.experience"| translate }}

-

{{ task_order.team_experience_description or RequiredLabel() }}

+

{{ team_experience_description or RequiredLabel() }}

@@ -100,7 +121,7 @@

{{ "task_orders.new.review.performance_period"| translate }}

- {{ task_order.performance_length_description or RequiredLabel() }} + {{ performance_length_description or RequiredLabel() }}

{{ Icon('download') }} {{ "task_orders.new.review.usage_est_link"| translate }}

@@ -159,7 +180,7 @@

{{ "task_orders.new.review.ko"| translate }}

{{ task_order.ko_first_name }} {{ task_order.ko_last_name }}
{{ task_order.ko_email }}
- {{ task_order.ko_phone }}
+ {{ task_order.ko_phone_number | usPhone }}
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.ko_dod_id}}
{% if task_order.ko_invite %} {{ Icon('ok', classes='icon--green') }} {{ "task_orders.new.review.invited"| translate }} @@ -172,7 +193,7 @@

{{ "task_orders.new.review.cor"| translate }}

{{ task_order.cor_first_name }} {{ task_order.cor_last_name }}
{{ task_order.cor_email }}
- {{ task_order.cor_phone }}
+ {{ task_order.cor_phone_number | usPhone }}
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.cor_dod_id}}
{% if task_order.cor_invite %} {{ Icon('ok', classes='icon--green') }} {{ "task_orders.new.review.invited"| translate }} @@ -186,7 +207,7 @@

{{ "task_orders.new.review.so"| translate }}

{{ task_order.so_first_name }} {{ task_order.so_last_name }}
{{ task_order.so_email }}
- {{ task_order.so_phone }}
+ {{ task_order.so_phone_number | usPhone }}
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.so_dod_id}}
{% if task_order.so_invite %} {{ Icon('ok', classes='icon--green') }} {{ "task_orders.new.review.invited"| translate }}