parse contract dates into datetime objects

This commit is contained in:
leigh-mil 2019-09-25 16:30:53 -04:00
parent df5f4b9d3e
commit 92243965ec
6 changed files with 15 additions and 19 deletions

View File

@ -2,6 +2,7 @@ import os
import re
import pathlib
from configparser import ConfigParser
from datetime import datetime
from flask import Flask, request, g, session
from flask_session import Session
import redis
@ -175,6 +176,12 @@ def map_config(config):
# with a Beat job once a day)
"CELERY_RESULT_EXPIRES": 0,
"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(),
}

View File

@ -9,7 +9,6 @@ from wtforms.fields import (
from wtforms.fields.html5 import DateField
from wtforms.validators import Required, Optional, Length, NumberRange, ValidationError
from flask_wtf import FlaskForm
from datetime import datetime
from numbers import Number
from .data import JEDI_CLIN_TYPES
@ -85,12 +84,8 @@ class CLINForm(FlaskForm):
def validate(self, *args, **kwargs):
valid = super().validate(*args, **kwargs)
contract_start = datetime.strptime(
app.config.get("CONTRACT_START_DATE"), "%Y-%m-%d"
).date()
contract_end = datetime.strptime(
app.config.get("CONTRACT_END_DATE"), "%Y-%m-%d"
).date()
contract_start = app.config.get("CONTRACT_START_DATE")
contract_end = app.config.get("CONTRACT_END_DATE")
if (
self.start_date.data

View File

@ -46,7 +46,7 @@ export default {
this.minEndDate = this.calcMinEndDate(date)
}
} else if (event.name.includes(END_DATE)) {
if (event.valid != undefined && event.valid ) {
if (event.valid != undefined && event.valid) {
var date = new Date(event.value)
this.maxStartDate = this.calcMaxStartDate(date)
}

View File

@ -128,8 +128,6 @@
{{ 'task_orders.form.pop' | translate }}
</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 %}
{{ PopDateRange(start_field=fields.start_date, end_field=fields.end_date, watch=True, optional=False, mindate=contract_start, maxdate=contract_end) }}
{% else %}

View File

@ -48,7 +48,7 @@
</p>
<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 v-if='maxError' class="usa-input-error-message">
PoP start date must be before end date.
@ -137,7 +137,7 @@
<div class="usa-input__title">
{{ 'task_orders.form.pop_end' | translate }}
</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 })) }}
<p class='usa-input__help'>
@ -148,7 +148,7 @@
PoP end date must be after start date.
</div>
<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>
</legend>

View File

@ -38,12 +38,8 @@ def test_clin_form_start_date_before_end_date():
def test_clin_form_pop_dates_within_contract_dates():
CONTRACT_START_DATE = datetime.datetime.strptime(
app.config.get("CONTRACT_START_DATE"), "%Y-%m-%d"
).date()
CONTRACT_END_DATE = datetime.datetime.strptime(
app.config.get("CONTRACT_END_DATE"), "%Y-%m-%d"
).date()
CONTRACT_START_DATE = app.config.get("CONTRACT_START_DATE")
CONTRACT_END_DATE = app.config.get("CONTRACT_END_DATE")
invalid_start = CONTRACT_START_DATE - relativedelta(months=1)
invalid_end = CONTRACT_END_DATE + relativedelta(months=1)