Move display logic out of the TaskOrder model and into the template
This commit is contained in:
parent
7891432e90
commit
a66e5eba72
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user