diff --git a/atst/forms/ko_review.py b/atst/forms/ko_review.py index 51ff7fba..4081b5a3 100644 --- a/atst/forms/ko_review.py +++ b/atst/forms/ko_review.py @@ -1,15 +1,36 @@ +import pendulum from flask_wtf.file import FileAllowed +from wtforms.fields.html5 import DateField from wtforms.fields import StringField, TextAreaField, FileField from wtforms.validators import Optional, Length, InputRequired from .forms import CacheableForm -from .validators import IsNumber +from .validators import IsNumber, DateRange from atst.utils.localization import translate class KOReviewForm(CacheableForm): + start_date = DateField( + translate("forms.ko_review.start_date_label"), + validators=[ + DateRange( + lower_bound=pendulum.duration(days=0), + message=translate("forms.ko_review.invalid_date"), + ) + ], + ) + end_date = DateField( + translate("forms.ko_review.end_date_label"), + validators=[ + DateRange( + lower_bound=pendulum.duration(days=0), + message=translate("forms.ko_review.invalid_date"), + ) + ], + format="%m/%d/%Y", + ) pdf = FileField( translate("forms.ko_review.pdf_label"), description=translate("forms.ko_review.pdf_description"), @@ -17,7 +38,6 @@ class KOReviewForm(CacheableForm): FileAllowed( ["pdf", "png"], translate("forms.task_order.file_format_not_allowed") ), - InputRequired(), ], render_kw={"required": False, "accept": ".pdf,.png,application/pdf,image/png"}, ) diff --git a/atst/routes/portfolios/task_orders.py b/atst/routes/portfolios/task_orders.py index e7c50fac..7d01f190 100644 --- a/atst/routes/portfolios/task_orders.py +++ b/atst/routes/portfolios/task_orders.py @@ -90,14 +90,10 @@ def submit_ko_review(portfolio_id, task_order_id, form=None): task_order = TaskOrders.get(g.current_user, task_order_id) form = KOReviewForm(http_request.form) portfolio = Portfolios.get(g.current_user, portfolio_id) - # import ipdb - - # ipdb.set_trace() if form.validate(): form_data = {**http_request.form, **http_request.files} - # add form data to TO data - import ipdb; ipdb.set_trace() + TaskOrders.update(user=g.current_user, task_order=task_order, **form_data) return redirect( url_for( "portfolios.view_task_order", @@ -107,7 +103,6 @@ def submit_ko_review(portfolio_id, task_order_id, form=None): ) ) else: - # stay on the page and fix the fields that didnt validate return render_template( "/portfolios/task_orders/review.html", portfolio=portfolio, diff --git a/templates/portfolios/task_orders/review.html b/templates/portfolios/task_orders/review.html index e399df65..97b8d00d 100644 --- a/templates/portfolios/task_orders/review.html +++ b/templates/portfolios/task_orders/review.html @@ -31,8 +31,6 @@

{{ heading }}

{% if field %}

{{ field | findFilter(filter) }}

- {% else %} - {{ RequiredLabel() }} {% endif %} {% if caller %} {{ caller() }} @@ -47,8 +45,6 @@ {{ email }}
{% if phone_number %} {{ phone_number | usPhone }} - {% else %} - {{ RequiredLabel() }} {% endif %}
{{ "task_orders.new.review.dod_id" | translate }} {{ dod_id}}
@@ -97,8 +93,6 @@ {% endfor %} - {% else %} -

{{ RequiredLabel() }}

{% endif %}
@@ -116,8 +110,6 @@ {% endfor %} - {% else %} -

{{ RequiredLabel() }}

{% endif %}
@@ -157,8 +149,6 @@ {% if task_order.clin_01 %} {{ task_order.clin_01 | dollarsWithCents }} - {% else %} - {{ RequiredLabel() }} {% endif %} @@ -180,8 +170,6 @@ {% if task_order.clin_03 %} {{ task_order.clin_03 | dollarsWithCents or RequiredLabel() }} - {% else %} - {{ RequiredLabel() }} {% endif %} @@ -203,10 +191,8 @@ -
{{ "task_orders.ko_review.performance_start"| translate }}
- {{ DatePicker() }} -
{{ "task_orders.ko_review.performance_end"| translate }}
- {{ DatePicker() }} + {{ DatePicker(form.start_date) }} + {{ DatePicker(form.end_date) }}
diff --git a/translations.yaml b/translations.yaml index 6c9bc1e0..4869ff80 100644 --- a/translations.yaml +++ b/translations.yaml @@ -55,6 +55,9 @@ forms: phone_ext_mao_label: Extension (optional) phone_mao_label: Mission Owner phone number (optional) ko_review: + start_date_label: Period of Performance Start Date + end_date_label: Period of Performance End Date + invalid_date: Must be a date in the future. pdf_label: Upload a copy of your Task Order document pdf_description: Upload a PDF of the Task Order that you entered in your system of record for your organization. to_number: Task Order Number @@ -464,8 +467,6 @@ task_orders: add_button_text: Add / Invite Security Officer invite_button_text: Invite Security Officer ko_review: - performance_start: Period of Performance Start Date - performance_end: Period of Performance End Date task_order_information: Task Order Information testing: example_string: Hello World