Handle formdata processing in a property

This commit is contained in:
Montana 2019-01-07 09:33:08 -05:00
parent 1fcd27a4e0
commit c70202c33c
5 changed files with 25 additions and 26 deletions

View File

@ -52,11 +52,6 @@ class TaskOrder(Base, mixins.TimestampsMixin):
filter(None, [self.clin_01, self.clin_02, self.clin_03, self.clin_04])
)
def __repr__(self):
return "<TaskOrder(number='{}', budget='{}', end_date='{}', id='{}')>".format(
self.number, self.budget, self.end_date, self.id
)
@property
def portfolio_name(self):
return self.workspace.name
@ -70,3 +65,8 @@ class TaskOrder(Base, mixins.TimestampsMixin):
if c.name not in ["id"]
},
}
def __repr__(self):
return "<TaskOrder(number='{}', budget='{}', end_date='{}', id='{}')>".format(
self.number, self.budget, self.end_date, self.id
)

View File

@ -49,14 +49,20 @@ class ShowTaskOrderWorkflow:
return self._task_order
@property
def task_order_formdata(self):
task_order_dict = self.task_order.to_dictionary()
for field in task_order_dict:
if task_order_dict[field] is None:
task_order_dict[field] = ""
return task_order_dict
@property
def form(self):
if self._form:
pass
elif self.task_order:
# None causes issues with formdata, so coerce None to ''
formdata = self.process_none_types(task_order=self.task_order)
self._form = self._section["form"](formdata=formdata)
self._form = self._section["form"](formdata=self.task_order_formdata)
else:
self._form = self._section["form"]()
@ -77,13 +83,6 @@ class ShowTaskOrderWorkflow:
return screen_info
def process_none_types(self, task_order):
task_order_dict = task_order.to_dictionary()
for field in task_order_dict:
if task_order_dict[field] is None:
task_order_dict[field] = ""
return task_order_dict
class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
def __init__(self, form_data, user, screen=1, task_order_id=None):

View File

@ -39,7 +39,7 @@
<label for='{{ field.name }}-{{ field.choices.index(choice) }}'>{{ choice[1] }}</label>
<div v-show="otherChecked">
<input type='text' name='{{ field.name}}_other' id='{{ field.name }}-other' v-bind:value="otherText" aria-expanded='false' />
<input type='text' name='{{ other_input_field.name}}' id='{{ field.name }}-other' v-bind:value="otherText" aria-expanded='false' />
</div>
{% endif %}
</li>

View File

@ -1,10 +0,0 @@
import pytest
from wtforms import Form
from atst.forms.task_order import AppInfoForm
def test_complexity():
form = AppInfoForm(formdata={"complexity": ["other", "not_sure", "storage"]})
assert form.data["complexity"] == ["other", "not_sure", "storage"]

View File

@ -78,6 +78,16 @@ def test_show_task_order():
assert another_workflow.task_order == task_order
def test_show_task_order_formdata():
task_order = TaskOrderFactory.create()
workflow = ShowTaskOrderWorkflow(task_order_id=task_order.id)
assert workflow.task_order.to_dictionary()["user_id"] is None
assert workflow.task_order_formdata["user_id"] is ""
for field in workflow.task_order_formdata:
assert not field is None
def test_show_task_order_form():
workflow = ShowTaskOrderWorkflow()
assert not workflow.form.data["app_migration"]