Skip to content

Commit b23b3ce

Browse files
authored
Merge pull request #459 from NHSDigital/symptom-form-fixes
Symptom form fixes
2 parents 7b1ea09 + 7d41ad4 commit b23b3ce

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

manage_breast_screening/mammograms/forms/symptom_forms.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class CommonFields:
5858
label="Describe when",
5959
hint="For example, 3 days ago",
6060
classes="nhsuk-u-width-two-thirds",
61+
error_messages={"required": "Enter when the symptom was resolved"},
6162
)
6263
investigated = yes_no_field(
6364
label="Has this been investigated?",
@@ -205,7 +206,7 @@ def _model_values(self):
205206
investigation_details = self.cleaned_data.get("investigation_details", "")
206207
intermittent = self.cleaned_data.get("intermittent", False)
207208
recently_resolved = self.cleaned_data.get("recently_resolved", False)
208-
when_resolved = self.cleaned_data.get("when_resolved")
209+
when_resolved = self.cleaned_data.get("when_resolved", "")
209210
additional_information = self.cleaned_data.get("additional_information", "")
210211

211212
return dict(
@@ -260,6 +261,11 @@ def __init__(self, instance=None, **kwargs):
260261
predicate_field="when_started",
261262
predicate_field_value=RelativeDateChoices.SINCE_A_SPECIFIC_DATE,
262263
)
264+
self.set_conditionally_required(
265+
conditionally_required_field="when_resolved",
266+
predicate_field="recently_resolved",
267+
predicate_field_value=True,
268+
)
263269
self.set_conditionally_required(
264270
conditionally_required_field="investigation_details",
265271
predicate_field="investigated",
@@ -310,6 +316,11 @@ def __init__(self, instance=None, **kwargs):
310316
predicate_field="when_started",
311317
predicate_field_value=RelativeDateChoices.SINCE_A_SPECIFIC_DATE,
312318
)
319+
self.set_conditionally_required(
320+
conditionally_required_field="when_resolved",
321+
predicate_field="recently_resolved",
322+
predicate_field_value=True,
323+
)
313324
self.set_conditionally_required(
314325
conditionally_required_field="investigation_details",
315326
predicate_field="investigated",

manage_breast_screening/mammograms/jinja2/mammograms/medical_information/symptoms/simple_symptom.jinja

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{% from "nhsuk/components/fieldset/macro.jinja" import fieldset %}
44

55
{% block form %}
6-
{% do form.area.add_divider_after("LEFT", "or") %}
6+
{% do form.area.add_divider_after("LEFT_BREAST", "or") %}
77
{% do form.area.add_conditional_html(
88
'OTHER',
99
form.area_description.as_field_group()
@@ -29,6 +29,7 @@
2929
}
3030
}) %}
3131
{{ form.when_started.as_field_group() }}
32+
<br>
3233
{{ form.intermittent.as_field_group() }}
3334
{{ form.recently_resolved.as_field_group() }}
3435
{% endcall %}

manage_breast_screening/mammograms/tests/forms/test_symptom_forms.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def test_missing_conditionally_required_fields(self):
4444
"area": RightLeftOtherChoices.OTHER,
4545
"when_started": RelativeDateChoices.SINCE_A_SPECIFIC_DATE,
4646
"investigated": YesNo.YES,
47+
"recently_resolved": True,
4748
}
4849
)
4950

@@ -54,6 +55,7 @@ def test_missing_conditionally_required_fields(self):
5455
],
5556
"specific_date": ["Enter the date the symptom started"],
5657
"investigation_details": ["Enter details of any investigations"],
58+
"when_resolved": ["Enter when the symptom was resolved"],
5759
}
5860

5961
def test_valid_form_with_conditionally_required_fields(self):
@@ -66,6 +68,8 @@ def test_valid_form_with_conditionally_required_fields(self):
6668
"specific_date_0": "2",
6769
"specific_date_1": "2025",
6870
"investigation_details": "def",
71+
"recently_resolved": True,
72+
"when_resolved": "3 months ago",
6973
}
7074
)
7175
assert form.is_valid()
@@ -191,6 +195,7 @@ def test_missing_conditionally_required_fields(self):
191195
"area": RightLeftOtherChoices.OTHER,
192196
"when_started": RelativeDateChoices.SINCE_A_SPECIFIC_DATE,
193197
"investigated": YesNo.YES,
198+
"recently_resolved": True,
194199
}
195200
)
196201

@@ -201,6 +206,7 @@ def test_missing_conditionally_required_fields(self):
201206
],
202207
"specific_date": ["Enter the date the symptom started"],
203208
"investigation_details": ["Enter details of any investigations"],
209+
"when_resolved": ["Enter when the symptom was resolved"],
204210
}
205211

206212
def test_valid_form_with_conditionally_required_fields(self):
@@ -213,6 +219,8 @@ def test_valid_form_with_conditionally_required_fields(self):
213219
"specific_date_0": "2",
214220
"specific_date_1": "2025",
215221
"investigation_details": "def",
222+
"recently_resolved": True,
223+
"when_resolved": "3 months ago",
216224
}
217225
)
218226
assert form.is_valid()

0 commit comments

Comments
 (0)