From 85fcee005ed56f3b377297575ee0fdd11c1cf990 Mon Sep 17 00:00:00 2001 From: Montana Date: Tue, 5 Mar 2019 11:23:46 -0500 Subject: [PATCH] Do not require portfolio name and defense component when building a new TO from a portfolio --- atst/forms/task_order.py | 35 ++++++++++++++++++---------------- atst/routes/task_orders/new.py | 8 ++++++++ 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/atst/forms/task_order.py b/atst/forms/task_order.py index b70e4f99..cc24c14e 100644 --- a/atst/forms/task_order.py +++ b/atst/forms/task_order.py @@ -27,26 +27,11 @@ from .data import ( from atst.utils.localization import translate -class AppInfoForm(BaseForm): - portfolio_name = StringField( - translate("forms.task_order.portfolio_name_label"), - description=translate("forms.task_order.portfolio_name_description"), - validators=[ - Required(), - Length( - min=4, - max=100, - message=translate("forms.portfolio.name_length_validation_message"), - ), - ], - ) +class AppInfoWithExistingPortfolioForm(BaseForm): scope = TextAreaField( translate("forms.task_order.scope_label"), description=translate("forms.task_order.scope_description"), ) - defense_component = SelectField( - translate("forms.task_order.defense_component_label"), choices=SERVICE_BRANCHES - ) app_migration = RadioField( translate("forms.task_order.app_migration.label"), description=translate("forms.task_order.app_migration.description"), @@ -88,6 +73,24 @@ class AppInfoForm(BaseForm): ) +class AppInfoForm(AppInfoWithExistingPortfolioForm): + portfolio_name = StringField( + translate("forms.task_order.portfolio_name_label"), + description=translate("forms.task_order.portfolio_name_description"), + validators=[ + Required(), + Length( + min=4, + max=100, + message=translate("forms.portfolio.name_length_validation_message"), + ), + ], + ) + defense_component = SelectField( + translate("forms.task_order.defense_component_label"), choices=SERVICE_BRANCHES + ) + + class FundingForm(BaseForm): performance_length = SelectField( translate("forms.task_order.performance_length.label"), diff --git a/atst/routes/task_orders/new.py b/atst/routes/task_orders/new.py index 5302fa00..48f59a13 100644 --- a/atst/routes/task_orders/new.py +++ b/atst/routes/task_orders/new.py @@ -92,6 +92,10 @@ class ShowTaskOrderWorkflow: return self._form + @form.setter + def form(self, value): + self._form = value + @property def template(self): return self._section["template"] @@ -137,6 +141,8 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow): @property def form(self): + if self.screen == 1 and self.portfolio_id: + return task_order_form.AppInfoWithExistingPortfolioForm() return self._form @property @@ -222,6 +228,8 @@ def new(screen, task_order_id=None, portfolio_id=None): if portfolio_id: template_args["portfolio"] = Portfolios.get(g.current_user, portfolio_id) + if screen == 1: + workflow.form = task_order_form.AppInfoWithExistingPortfolioForm() url_args = {"screen": screen} if task_order_id: