From cc4ce78952a411a9b095b8db5f19c6983261cb65 Mon Sep 17 00:00:00 2001 From: Jamie Falcus <50366804+jamiefalcus@users.noreply.github.com> Date: Thu, 19 Mar 2026 15:20:09 +0000 Subject: [PATCH] PPHA-624: Updates to gender page --- .../questions/forms/gender_form.py | 13 +++++++------ .../questions/jinja2/gender.jinja | 9 +++++++++ .../0008_alter_genderresponse_value.py | 18 ++++++++++++++++++ .../questions/models/gender_response.py | 1 - .../questions/views/gender.py | 2 +- 5 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 lung_cancer_screening/questions/jinja2/gender.jinja create mode 100644 lung_cancer_screening/questions/migrations/0008_alter_genderresponse_value.py diff --git a/lung_cancer_screening/questions/forms/gender_form.py b/lung_cancer_screening/questions/forms/gender_form.py index db1ddf87..57b945d4 100644 --- a/lung_cancer_screening/questions/forms/gender_form.py +++ b/lung_cancer_screening/questions/forms/gender_form.py @@ -13,17 +13,18 @@ def __init__(self, *args, **kwargs): choices=GenderValues.choices, widget=forms.RadioSelect, label="Which of these best describes you?", - label_classes="nhsuk-fieldset__legend--l", - label_is_page_heading=True, - hint=( - "This information is used to find your NHS number and " - "match with your GP record." - ), error_messages={ 'required': 'Select the option that best describes your gender' } ) + # Add divider before "None of the above" + fields = self["value"] + fields.add_divider_after( + GenderValues.NON_BINARY, + "or" + ) + class Meta: model = GenderResponse fields = ['value'] diff --git a/lung_cancer_screening/questions/jinja2/gender.jinja b/lung_cancer_screening/questions/jinja2/gender.jinja new file mode 100644 index 00000000..f336b1d6 --- /dev/null +++ b/lung_cancer_screening/questions/jinja2/gender.jinja @@ -0,0 +1,9 @@ +{% extends 'question_form.jinja' %} + +{% block prelude %} +

Your gender identity

+ +

The answers you submit will not be shared with your patient care advisor during your phone appointment, or with your GP.

+ +

In the future we plan to use information about someone's gender identity to help us plan their care in the NHS lung cancer screening programme.

+{% endblock prelude %} diff --git a/lung_cancer_screening/questions/migrations/0008_alter_genderresponse_value.py b/lung_cancer_screening/questions/migrations/0008_alter_genderresponse_value.py new file mode 100644 index 00000000..bb616377 --- /dev/null +++ b/lung_cancer_screening/questions/migrations/0008_alter_genderresponse_value.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.3 on 2026-03-19 15:11 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('questions', '0007_termsofuseresponse'), + ] + + operations = [ + migrations.AlterField( + model_name='genderresponse', + name='value', + field=models.CharField(choices=[('F', 'Female'), ('M', 'Male'), ('N', 'Non-binary'), ('P', 'Prefer not to say')], max_length=1), + ), + ] diff --git a/lung_cancer_screening/questions/models/gender_response.py b/lung_cancer_screening/questions/models/gender_response.py index e7838e8b..ec109455 100644 --- a/lung_cancer_screening/questions/models/gender_response.py +++ b/lung_cancer_screening/questions/models/gender_response.py @@ -9,7 +9,6 @@ class GenderValues(models.TextChoices): MALE = "M", 'Male' NON_BINARY = "N", 'Non-binary' PREFER_NOT_TO_SAY = "P", 'Prefer not to say' - GP = "G", 'How I describe myself may not match my GP record' class GenderResponse(BaseModel): diff --git a/lung_cancer_screening/questions/views/gender.py b/lung_cancer_screening/questions/views/gender.py index 1399b596..8997485f 100644 --- a/lung_cancer_screening/questions/views/gender.py +++ b/lung_cancer_screening/questions/views/gender.py @@ -9,7 +9,7 @@ class GenderView(LoginRequiredMixin, EnsureResponseSet, EnsureEligibleMixin, QuestionBaseView): - template_name = "question_form.jinja" + template_name = "gender.jinja" form_class = GenderForm model = GenderResponse success_url = reverse_lazy("questions:ethnicity")