Merge pull request #531 from dod-ccpo/fix-checkbox

Fix checkbox
This commit is contained in:
montana-mil 2019-01-15 09:37:54 -05:00 committed by GitHub
commit 53918f0593
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 40 additions and 11 deletions

View File

@ -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"],

View File

@ -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 = ''
},
}
}

View File

@ -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>

View File

@ -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(),