Migration to add custom_clauses to TO; form fixes

This commit is contained in:
Montana 2019-01-30 11:48:13 -05:00
parent be003c1821
commit 40780bf244
5 changed files with 49 additions and 15 deletions

View File

@ -0,0 +1,30 @@
"""Add Custom Clauses to Task Order
Revision ID: 0ff4c31c4d28
Revises: da9d1c911a52
Create Date: 2019-01-30 11:28:37.193854
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '0ff4c31c4d28'
down_revision = 'da9d1c911a52'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('task_orders', 'loa', type_=sa.String(), nullable=True)
op.add_column('task_orders', sa.Column('custom_clauses', sa.String(), nullable=True))
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('task_orders', 'custom_clauses')
op.alter_column('task_orders', 'loa', type_=sa.ARRAY(sa.String()), nullable=True)
# ### end Alembic commands ###

View File

@ -29,7 +29,6 @@ class KOReviewForm(CacheableForm):
message=translate("forms.ko_review.invalid_date"),
)
],
format="%m/%d/%Y",
)
pdf = FileField(
translate("forms.ko_review.pdf_label"),
@ -37,11 +36,11 @@ class KOReviewForm(CacheableForm):
validators=[
FileAllowed(
["pdf", "png"], translate("forms.task_order.file_format_not_allowed")
),
)
],
render_kw={"required": False, "accept": ".pdf,.png,application/pdf,image/png"},
)
to_number = StringField(
number = StringField(
translate("forms.ko_review.to_number"), validators=[Length(min=10), IsNumber()]
)
loa = StringField(

View File

@ -72,7 +72,8 @@ class TaskOrder(Base, mixins.TimestampsMixin):
so_phone_number = Column(String) # Phone Number
so_dod_id = Column(String) # DOD ID
number = Column(String, unique=True) # Task Order Number
loa = Column(ARRAY(String)) # Line of Accounting (LOA)
loa = Column(String) # Line of Accounting (LOA)
custom_clauses = Column(String) # Custom Clauses
@hybrid_property
def csp_estimate(self):
@ -93,7 +94,12 @@ class TaskOrder(Base, mixins.TimestampsMixin):
@property
def is_submitted(self):
return self.number is not None
return (
self.number is not None
and self.start_date is not None
and self.end_date is not None
)
@property
def status(self):

View File

@ -71,7 +71,7 @@ def view_task_order(portfolio_id, task_order_id):
@portfolios_bp.route("/portfolios/<portfolio_id>/task_order/<task_order_id>/review")
def ko_review(portfolio_id, task_order_id, form=None):
def ko_review(portfolio_id, task_order_id):
task_order = TaskOrders.get(g.current_user, task_order_id)
# get permission: make sure g.current_user is task_order.contracting_officer
portfolio = Portfolios.get(g.current_user, portfolio_id)
@ -79,7 +79,7 @@ def ko_review(portfolio_id, task_order_id, form=None):
"/portfolios/task_orders/review.html",
portfolio=portfolio,
task_order=task_order,
form=form or KOReviewForm(),
form=KOReviewForm(obj=task_order),
)
@ -92,14 +92,12 @@ def submit_ko_review(portfolio_id, task_order_id, form=None):
portfolio = Portfolios.get(g.current_user, portfolio_id)
if form.validate():
form_data = {**http_request.form, **http_request.files}
TaskOrders.update(user=g.current_user, task_order=task_order, **form_data)
TaskOrders.update(user=g.current_user, task_order=task_order, **form.data)
return redirect(
url_for(
"portfolios.view_task_order",
portfolio_id=portfolio_id,
task_order_id=task_order_id,
form=form,
)
)
else:

View File

@ -213,7 +213,8 @@
{{ form.pdf.label }}
{{ form.pdf.description }}
{{ form.pdf }}
{{ TextInput(form.to_number) }}
{{ TextInput(form.number) }}
{{ TextInput(form.loa) }}
{{ TextInput(form.custom_clauses, paragraph=True) }}