Migration to add custom_clauses to TO; form fixes
This commit is contained in:
parent
be003c1821
commit
40780bf244
@ -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 ###
|
@ -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(
|
||||
|
@ -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):
|
||||
|
@ -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:
|
||||
|
@ -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) }}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user