commit
53918f0593
@ -118,18 +118,35 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
|
||||
if self.task_order:
|
||||
return self.task_order.portfolio
|
||||
|
||||
@property
|
||||
def task_order_form_data(self):
|
||||
to_data = self.form.data.copy()
|
||||
if "portfolio_name" in to_data:
|
||||
to_data.pop("portfolio_name")
|
||||
|
||||
# don't save other text in DB unless "other" is checked
|
||||
if "complexity" in to_data and "other" not in to_data["complexity"]:
|
||||
to_data["complexity_other"] = None
|
||||
if "dev_team" in to_data and "other" not in to_data["dev_team"]:
|
||||
to_data["dev_team_other"] = None
|
||||
|
||||
return to_data
|
||||
|
||||
def validate(self):
|
||||
return self.form.validate()
|
||||
|
||||
def _update_task_order(self):
|
||||
if self.task_order:
|
||||
TaskOrders.update(self.user, self.task_order, **self.form.data)
|
||||
if "portfolio_name" in self.form.data:
|
||||
new_name = self.form.data["portfolio_name"]
|
||||
old_name = self.task_order.portfolio_name
|
||||
if not new_name == old_name:
|
||||
Portfolios.update(self.task_order.portfolio, {"name": new_name})
|
||||
TaskOrders.update(self.user, self.task_order, **self.task_order_form_data)
|
||||
else:
|
||||
ws = Portfolios.create(self.user, self.form.portfolio_name.data)
|
||||
to_data = self.form.data.copy()
|
||||
to_data.pop("portfolio_name")
|
||||
self._task_order = TaskOrders.create(self.user, ws)
|
||||
TaskOrders.update(self.user, self.task_order, **to_data)
|
||||
pf = Portfolios.create(self.user, self.form.portfolio_name.data)
|
||||
self._task_order = TaskOrders.create(portfolio=pf, creator=self.user)
|
||||
TaskOrders.update(self.user, self.task_order, **self.task_order_form_data)
|
||||
|
||||
OFFICER_INVITATIONS = [
|
||||
{
|
||||
@ -177,10 +194,10 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
|
||||
officer = TaskOrders.add_officer(
|
||||
self.user, self.task_order, officer_type["role"], officer_data
|
||||
)
|
||||
ws_officer_member = PortfolioRoles.get(self.portfolio.id, officer.id)
|
||||
pf_officer_member = PortfolioRoles.get(self.portfolio.id, officer.id)
|
||||
invite_service = InvitationService(
|
||||
self.user,
|
||||
ws_officer_member,
|
||||
pf_officer_member,
|
||||
officer_data["email"],
|
||||
subject=officer_type["subject"],
|
||||
email_template=officer_type["template"],
|
||||
|
@ -30,7 +30,7 @@ export default {
|
||||
showValid: !showError && this.initialValue.length > 0,
|
||||
validationError: this.initialErrors.join(' '),
|
||||
otherChecked: this.initialValue.includes("other") ? true : this.otherChecked,
|
||||
otherText: this.initialOtherValue,
|
||||
otherText: this.initialValue.includes("other") ? this.initialOtherValue : '',
|
||||
selections: this.initialValue
|
||||
}
|
||||
},
|
||||
@ -46,7 +46,6 @@ export default {
|
||||
},
|
||||
otherToggle: function() {
|
||||
this.otherChecked = !this.otherChecked
|
||||
this.otherText = ''
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,7 @@
|
||||
<label for='{{ field.name }}-{{ loop.index0 }}'>{{ choice[1] }}</label>
|
||||
|
||||
<div v-show="otherChecked">
|
||||
<input type='text' name='{{ other_input_field.name}}' id='{{ field.name }}-other' v-bind:value="otherText" aria-expanded='false' />
|
||||
<input type='text' name='{{ other_input_field.name}}' id='{{ field.name }}-other' v-model:value="otherText" aria-expanded='false' />
|
||||
</div>
|
||||
{% endif %}
|
||||
</li>
|
||||
|
@ -162,6 +162,19 @@ def test_update_task_order_with_existing_task_order(task_order):
|
||||
assert workflow.task_order.start_date.strftime("%m/%d/%Y") == to_data["start_date"]
|
||||
|
||||
|
||||
def test_other_text_not_saved_if_other_not_checked(task_order):
|
||||
to_data = {
|
||||
**TaskOrderFactory.dictionary(),
|
||||
"complexity": ["conus"],
|
||||
"complexity_other": "quite complex",
|
||||
}
|
||||
workflow = UpdateTaskOrderWorkflow(
|
||||
task_order.creator, to_data, task_order_id=task_order.id
|
||||
)
|
||||
workflow.update()
|
||||
assert not workflow.task_order.complexity_other
|
||||
|
||||
|
||||
def test_invite_officers_to_task_order(task_order, queue):
|
||||
to_data = {
|
||||
**TaskOrderFactory.dictionary(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user