Move display logic out of the TaskOrder model and into the template

This commit is contained in:
leigh-mil 2019-01-16 10:05:38 -05:00
parent 7891432e90
commit a66e5eba72
3 changed files with 44 additions and 77 deletions

View File

@ -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):

View File

@ -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 "<TaskOrder(number='{}', budget='{}', end_date='{}', id='{}')>".format(
self.number, self.budget, self.end_date, self.id

View File

@ -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 %}
<h3 class="subheading">{{ "task_orders.new.review.app_info"| translate }} {{ TOEditLink(screen=1) }}</h3>
<div class="row">
@ -28,7 +49,7 @@
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.dod"| translate }}</h4>
<p>{{ task_order.defense_component_description or RequiredLabel() }}</p>
<p>{{ defense_component_description or RequiredLabel() }}</p>
</div>
</div>
@ -44,12 +65,12 @@
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.migration"| translate }}</h4>
<p>{{ task_order.app_migration_description or RequiredLabel() }}</p>
<p>{{ app_migration_description or RequiredLabel() }}</p>
</div>
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.native_apps"| translate }}</h4>
<p>{{ task_order.native_apps_description or RequiredLabel() }}</p>
<p>{{ native_apps_description or RequiredLabel() }}</p>
</div>
</div>
@ -89,7 +110,7 @@
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.experience"| translate }}</h4>
<p>{{ task_order.team_experience_description or RequiredLabel() }}</p>
<p>{{ team_experience_description or RequiredLabel() }}</p>
</div>
</div>
@ -100,7 +121,7 @@
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.performance_period"| translate }}</h4>
{{ task_order.performance_length_description or RequiredLabel() }}
{{ performance_length_description or RequiredLabel() }}
<p><a href="#" class='icon-link icon-link--left' download>{{ Icon('download') }} {{ "task_orders.new.review.usage_est_link"| translate }}</a></p>
</div>
@ -159,7 +180,7 @@
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.ko"| translate }}</h4>
{{ task_order.ko_first_name }} {{ task_order.ko_last_name }}<br>
{{ task_order.ko_email }}<br>
{{ task_order.ko_phone }}<br>
{{ task_order.ko_phone_number | usPhone }}<br>
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.ko_dod_id}}<br>
{% if task_order.ko_invite %}
{{ Icon('ok', classes='icon--green') }} <span class="task-order-invite-message sent">{{ "task_orders.new.review.invited"| translate }}</<span>
@ -172,7 +193,7 @@
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.cor"| translate }}</h4>
{{ task_order.cor_first_name }} {{ task_order.cor_last_name }}<br>
{{ task_order.cor_email }}<br>
{{ task_order.cor_phone }}<br>
{{ task_order.cor_phone_number | usPhone }}<br>
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.cor_dod_id}}<br>
{% if task_order.cor_invite %}
{{ Icon('ok', classes='icon--green') }} <span class="task-order-invite-message sent">{{ "task_orders.new.review.invited"| translate }}</<span>
@ -186,7 +207,7 @@
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.so"| translate }}</h4>
{{ task_order.so_first_name }} {{ task_order.so_last_name }}<br>
{{ task_order.so_email }}<br>
{{ task_order.so_phone }}<br>
{{ task_order.so_phone_number | usPhone }}<br>
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.so_dod_id}}<br>
{% if task_order.so_invite %}
{{ Icon('ok', classes='icon--green') }} <span class="task-order-invite-message sent">{{ "task_orders.new.review.invited"| translate }}</<span>