parse contract dates into datetime objects
This commit is contained in:
parent
df5f4b9d3e
commit
92243965ec
@ -2,6 +2,7 @@ import os
|
|||||||
import re
|
import re
|
||||||
import pathlib
|
import pathlib
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
|
from datetime import datetime
|
||||||
from flask import Flask, request, g, session
|
from flask import Flask, request, g, session
|
||||||
from flask_session import Session
|
from flask_session import Session
|
||||||
import redis
|
import redis
|
||||||
@ -175,6 +176,12 @@ def map_config(config):
|
|||||||
# with a Beat job once a day)
|
# with a Beat job once a day)
|
||||||
"CELERY_RESULT_EXPIRES": 0,
|
"CELERY_RESULT_EXPIRES": 0,
|
||||||
"CELERY_RESULT_EXTENDED": True,
|
"CELERY_RESULT_EXTENDED": True,
|
||||||
|
"CONTRACT_START_DATE": datetime.strptime(
|
||||||
|
config.get("default", "CONTRACT_START_DATE"), "%Y-%m-%d"
|
||||||
|
).date(),
|
||||||
|
"CONTRACT_END_DATE": datetime.strptime(
|
||||||
|
config.get("default", "CONTRACT_END_DATE"), "%Y-%m-%d"
|
||||||
|
).date(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,7 +9,6 @@ from wtforms.fields import (
|
|||||||
from wtforms.fields.html5 import DateField
|
from wtforms.fields.html5 import DateField
|
||||||
from wtforms.validators import Required, Optional, Length, NumberRange, ValidationError
|
from wtforms.validators import Required, Optional, Length, NumberRange, ValidationError
|
||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
from datetime import datetime
|
|
||||||
from numbers import Number
|
from numbers import Number
|
||||||
|
|
||||||
from .data import JEDI_CLIN_TYPES
|
from .data import JEDI_CLIN_TYPES
|
||||||
@ -85,12 +84,8 @@ class CLINForm(FlaskForm):
|
|||||||
|
|
||||||
def validate(self, *args, **kwargs):
|
def validate(self, *args, **kwargs):
|
||||||
valid = super().validate(*args, **kwargs)
|
valid = super().validate(*args, **kwargs)
|
||||||
contract_start = datetime.strptime(
|
contract_start = app.config.get("CONTRACT_START_DATE")
|
||||||
app.config.get("CONTRACT_START_DATE"), "%Y-%m-%d"
|
contract_end = app.config.get("CONTRACT_END_DATE")
|
||||||
).date()
|
|
||||||
contract_end = datetime.strptime(
|
|
||||||
app.config.get("CONTRACT_END_DATE"), "%Y-%m-%d"
|
|
||||||
).date()
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
self.start_date.data
|
self.start_date.data
|
||||||
|
@ -128,8 +128,6 @@
|
|||||||
{{ 'task_orders.form.pop' | translate }}
|
{{ 'task_orders.form.pop' | translate }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% set contract_start_formatted = contract_start | dateFromString(formatter="%Y-%m-%d") %}
|
|
||||||
{% set contract_end_formatted = contract_end | dateFromString(formatter="%Y-%m-%d") %}
|
|
||||||
{% if fields %}
|
{% if fields %}
|
||||||
{{ PopDateRange(start_field=fields.start_date, end_field=fields.end_date, watch=True, optional=False, mindate=contract_start, maxdate=contract_end) }}
|
{{ PopDateRange(start_field=fields.start_date, end_field=fields.end_date, watch=True, optional=False, mindate=contract_start, maxdate=contract_end) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div v-if='minError' class="usa-input-error-message">
|
<div v-if='minError' class="usa-input-error-message">
|
||||||
PoP start date must be on or after {{ mindate | dateFromString(formatter="%Y-%m-%d") | formattedDate(formatter="%B %d, %Y") }}.
|
PoP start date must be on or after {{ mindate | formattedDate(formatter="%B %d, %Y") }}.
|
||||||
</div>
|
</div>
|
||||||
<div v-if='maxError' class="usa-input-error-message">
|
<div v-if='maxError' class="usa-input-error-message">
|
||||||
PoP start date must be before end date.
|
PoP start date must be before end date.
|
||||||
@ -137,7 +137,7 @@
|
|||||||
<div class="usa-input__title">
|
<div class="usa-input__title">
|
||||||
{{ 'task_orders.form.pop_end' | translate }}
|
{{ 'task_orders.form.pop_end' | translate }}
|
||||||
</div>
|
</div>
|
||||||
{% set formatted_end_date = maxdate | dateFromString(formatter="%Y-%m-%d") | formattedDate(formatter="%B %d, %Y") %}
|
{% set formatted_end_date = maxdate | formattedDate(formatter="%B %d, %Y") %}
|
||||||
{{ Alert(message="task_orders.form.pop_end_alert" | translate({'end_date': formatted_end_date })) }}
|
{{ Alert(message="task_orders.form.pop_end_alert" | translate({'end_date': formatted_end_date })) }}
|
||||||
|
|
||||||
<p class='usa-input__help'>
|
<p class='usa-input__help'>
|
||||||
@ -148,7 +148,7 @@
|
|||||||
PoP end date must be after start date.
|
PoP end date must be after start date.
|
||||||
</div>
|
</div>
|
||||||
<div v-if='maxError' class="usa-input-error-message">
|
<div v-if='maxError' class="usa-input-error-message">
|
||||||
PoP end date must be on or after {{ maxdate | dateFromString(formatter="%Y-%m-%d") | formattedDate(formatter="%B %d, %Y") }}.
|
PoP end date must be on or after {{ formatted_end_date }}.
|
||||||
</div>
|
</div>
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
|
@ -38,12 +38,8 @@ def test_clin_form_start_date_before_end_date():
|
|||||||
|
|
||||||
|
|
||||||
def test_clin_form_pop_dates_within_contract_dates():
|
def test_clin_form_pop_dates_within_contract_dates():
|
||||||
CONTRACT_START_DATE = datetime.datetime.strptime(
|
CONTRACT_START_DATE = app.config.get("CONTRACT_START_DATE")
|
||||||
app.config.get("CONTRACT_START_DATE"), "%Y-%m-%d"
|
CONTRACT_END_DATE = app.config.get("CONTRACT_END_DATE")
|
||||||
).date()
|
|
||||||
CONTRACT_END_DATE = datetime.datetime.strptime(
|
|
||||||
app.config.get("CONTRACT_END_DATE"), "%Y-%m-%d"
|
|
||||||
).date()
|
|
||||||
|
|
||||||
invalid_start = CONTRACT_START_DATE - relativedelta(months=1)
|
invalid_start = CONTRACT_START_DATE - relativedelta(months=1)
|
||||||
invalid_end = CONTRACT_END_DATE + relativedelta(months=1)
|
invalid_end = CONTRACT_END_DATE + relativedelta(months=1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user