From a2d3e917d40172ed7b2e5dcd1955cacbc97ee892 Mon Sep 17 00:00:00 2001 From: Michael Barton Date: Mon, 26 Jan 2026 14:04:38 +0000 Subject: [PATCH 01/19] Links to view old cohort --- templates/epilepsy12/partials/case_table.html | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/templates/epilepsy12/partials/case_table.html b/templates/epilepsy12/partials/case_table.html index 9b29e5481..cf011ae13 100644 --- a/templates/epilepsy12/partials/case_table.html +++ b/templates/epilepsy12/partials/case_table.html @@ -133,13 +133,16 @@
From 50cb21c6295615cfdc0dc919ae2b2e5fc5e4cc74 Mon Sep 17 00:00:00 2001 From: Michael Barton Date: Mon, 26 Jan 2026 16:13:52 +0000 Subject: [PATCH 02/19] Disable case form for old cohorts --- static/styles/form-fields.css | 5 + templates/epilepsy12/forms/case_form.html | 361 +++++++++++----------- 2 files changed, 194 insertions(+), 172 deletions(-) diff --git a/static/styles/form-fields.css b/static/styles/form-fields.css index 30abc584a..c2c068172 100644 --- a/static/styles/form-fields.css +++ b/static/styles/form-fields.css @@ -27,6 +27,11 @@ -webkit-transition: color 0.1s ease, border-color 0.1s ease; transition: color 0.1s ease, border-color 0.1s ease; } +.ui.rcpch.form fieldset { + border: none; + padding: 0; + margin: 0; +} .ui.form .field.field input:-webkit-autofill { border: 3px solid rgba(17, 167, 242, 1) !important; diff --git a/templates/epilepsy12/forms/case_form.html b/templates/epilepsy12/forms/case_form.html index 7aa938ab5..932456656 100644 --- a/templates/epilepsy12/forms/case_form.html +++ b/templates/epilepsy12/forms/case_form.html @@ -8,213 +8,230 @@ action=""> {% csrf_token %} -
-
- -
{{form.first_name}}
- {% if form.first_name.errors %} -
- {% for error in form.first_name.errors %} - {{ error }} - {% endfor %} +
+ + {% if not case.editable %} +
+ +
+
Submission closed
+

+ This child is part of cohort {{ case.registration.cohort }} which has now closed. +

+
- {% endif %} -
-
- -
{{form.surname}}
- {% if form.surname.errors %} -
- {% for error in form.surname.errors %} - {{ error }} - {% endfor %} + {% endif %} + +
+
+ +
{{form.first_name}}
+ {% if form.first_name.errors %} +
+ {% for error in form.first_name.errors %} + {{ error }} + {% endfor %} +
+ {% endif %}
- {% endif %} -
-
-
- -
- - {{form.date_of_birth}} - {% if form.date_of_birth.errors %} +
+ +
{{form.surname}}
+ {% if form.surname.errors %}
- {% for error in form.date_of_birth.errors %} + {% for error in form.surname.errors %} {{ error }} {% endfor %}
- {% endif %} -
- -
- - {{form.sex}} - {% if form.sex.errors %} -
- {% for error in form.sex.errors %} - {{ error }} - {% endfor %} -
- {% endif %} + {% endif %} +
-
- -
- -
- - {{form.postcode}} - {% if form.postcode.errors %} +
+ +
+ + {{form.date_of_birth}} + {% if form.date_of_birth.errors %}
- {% for error in form.postcode.errors %} + {% for error in form.date_of_birth.errors %} {{ error }} {% endfor %}
{% endif %}
-
- {% include 'epilepsy12/cases/postcode_options.html' with choices=choices test_positive=test_positive child_has_unknown_postcode=child_has_unknown_postcode %} +
+ + {{form.sex}} + {% if form.sex.errors %} +
+ {% for error in form.sex.errors %} + {{ error }} + {% endfor %} +
+ {% endif %} +
-
+
- {% if organisation.country.boundary_identifier == "JEY" %} -
- - {{form.unique_reference_number}} -
- {% for error in form.unique_reference_number.errors %} - {{ error }} - {% endfor %} -
-
- {% else %} -
- - {{form.nhs_number}} - {% if form.nhs_number.errors %} -
- {% for error in form.nhs_number.errors %} - {{ error }} - {% endfor %} +
+ + {{form.postcode}} + {% if form.postcode.errors %} +
+ {% for error in form.postcode.errors %} + {{ error }} + {% endfor %} +
+ {% endif %} +
+ +
+ {% include 'epilepsy12/cases/postcode_options.html' with choices=choices test_positive=test_positive child_has_unknown_postcode=child_has_unknown_postcode %}
- {% endif %} +
- {% endif %} -
- - {{form.ethnicity}} - {% if form.ethnicity.errors %} -
- {% for error in form.ethnicity.errors %} + {% if organisation.country.boundary_identifier == "JEY" %} +
+ + {{form.unique_reference_number}} +
+ {% for error in form.unique_reference_number.errors %} + {{ error }} + {% endfor %} +
+
+ {% else %} +
+ + {{form.nhs_number}} + {% if form.nhs_number.errors %} +
+ {% for error in form.nhs_number.errors %} {{ error }} {% endfor %} +
+ {% endif %}
{% endif %} -
- - {% if case and perms.epilepsy.can_opt_out_child_from_inclusion_in_audit %}
-
- -

- Children, young people and their families can opt out of Epilepsy12 at any - time. Should {{case}} or their family choose to do so, all records - relating to {{case}}'s epilepsy care will be removed from RCPCH servers. -

- -
+ + {{form.ethnicity}} + {% if form.ethnicity.errors %} +
+ {% for error in form.ethnicity.errors %} + {{ error }} + {% endfor %} +
+ {% endif %}
- {% else %} - -
-
- -
-
Organisation
-

- {% if organisation.trust %} - {{organisation.name}}({{organisation.trust.name}}) - {% else %} - {{organisation.name}}({{organisation.local_health_board.name}}) - {% endif %} - - will be allocated automatically as the lead Epilepsy12 centre on saving - this child's information. -

+ {% if case and perms.epilepsy.can_opt_out_child_from_inclusion_in_audit %} + +
+
+ +

+ Children, young people and their families can opt out of Epilepsy12 at any + time. Should {{case}} or their family choose to do so, all records + relating to {{case}}'s epilepsy care will be removed from RCPCH servers. +

+ +
+
+ + {% else %} + +
+
+ +
+
Organisation
+

+ {% if organisation.trust %} + {{organisation.name}}({{organisation.trust.name}}) + {% else %} + {{organisation.name}}({{organisation.local_health_board.name}}) + {% endif %} + + will be allocated automatically as the lead Epilepsy12 centre on saving + this child's information. +

+
-
- {% endif %} - -
-
- - Cancel - - {% if perms.epilepsy12.change_case or perms.epilepsy12.add_case %} - + {% endif %} - {% endif %} +
+
+ + Cancel + + {% if perms.epilepsy12.change_case or perms.epilepsy12.add_case %} + - {% if case %} - {% if perms.epilepsy12.delete_case %} - {% endif %} - {% endif %} + + {% if case %} + {% if perms.epilepsy12.delete_case %} + + {% endif %} + {% endif %} +
-
+ From ed80738de475093e5c764f1acef9b4f7321b9175 Mon Sep 17 00:00:00 2001 From: Michael Barton Date: Mon, 26 Jan 2026 16:31:11 +0000 Subject: [PATCH 03/19] Disable first paediatric assessment form in closed cohort for normal users --- epilepsy12/views/first_paediatric_assessment_views.py | 1 + ...iatric_assessment_in_acute_or_nonacute_setting.html | 2 +- .../when_the_first_epileptic_episode_occurred.html | 10 +++++----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/epilepsy12/views/first_paediatric_assessment_views.py b/epilepsy12/views/first_paediatric_assessment_views.py index b37213002..e615e7af5 100644 --- a/epilepsy12/views/first_paediatric_assessment_views.py +++ b/epilepsy12/views/first_paediatric_assessment_views.py @@ -37,6 +37,7 @@ def first_paediatric_assessment(request, case_id) -> HttpResponse: context = { "case_id": case_id, + "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.locked and request.user.has_perm("change_firstpaediatricassessment")), "registration": registration, "first_paediatric_assessment": first_paediatric_assessment, "chronicity_selection": CHRONICITY, diff --git a/templates/epilepsy12/partials/first_paediatric_assessment/first_paediatric_assessment_in_acute_or_nonacute_setting.html b/templates/epilepsy12/partials/first_paediatric_assessment/first_paediatric_assessment_in_acute_or_nonacute_setting.html index aead0291c..c87cb5e84 100644 --- a/templates/epilepsy12/partials/first_paediatric_assessment/first_paediatric_assessment_in_acute_or_nonacute_setting.html +++ b/templates/epilepsy12/partials/first_paediatric_assessment/first_paediatric_assessment_in_acute_or_nonacute_setting.html @@ -1,4 +1,4 @@
{% url 'first_paediatric_assessment_in_acute_or_nonacute_setting' first_paediatric_assessment_id=first_paediatric_assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with hx_post=hx_post hx_target='#first_paediatric_assessment_in_acute_or_nonacute_setting' hx_trigger="click" tooltip_id='first_paediatric_assessment_in_acute_or_nonacute_setting_tooltip' label=first_paediatric_assessment.get_first_paediatric_assessment_in_acute_or_nonacute_setting_help_label_text reference=first_paediatric_assessment.get_first_paediatric_assessment_in_acute_or_nonacute_setting_help_reference_text test_positive=first_paediatric_assessment.first_paediatric_assessment_in_acute_or_nonacute_setting data_position="top left" choices=chronicity_selection enabled=perms.epilepsy12.change_firstpaediatricassessment %} + {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with hx_post=hx_post hx_target='#first_paediatric_assessment_in_acute_or_nonacute_setting' hx_trigger="click" tooltip_id='first_paediatric_assessment_in_acute_or_nonacute_setting_tooltip' label=first_paediatric_assessment.get_first_paediatric_assessment_in_acute_or_nonacute_setting_help_label_text reference=first_paediatric_assessment.get_first_paediatric_assessment_in_acute_or_nonacute_setting_help_reference_text test_positive=first_paediatric_assessment.first_paediatric_assessment_in_acute_or_nonacute_setting data_position="top left" choices=chronicity_selection %}
\ No newline at end of file diff --git a/templates/epilepsy12/partials/first_paediatric_assessment/when_the_first_epileptic_episode_occurred.html b/templates/epilepsy12/partials/first_paediatric_assessment/when_the_first_epileptic_episode_occurred.html index 038ce899a..cda87b775 100644 --- a/templates/epilepsy12/partials/first_paediatric_assessment/when_the_first_epileptic_episode_occurred.html +++ b/templates/epilepsy12/partials/first_paediatric_assessment/when_the_first_epileptic_episode_occurred.html @@ -19,20 +19,20 @@
{% url 'general_examination_performed' first_paediatric_assessment_id=first_paediatric_assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.general_examination_performed tooltip_id='general_examination_performed' label=first_paediatric_assessment.get_general_examination_performed_help_label_text reference=first_paediatric_assessment.get_general_examination_performed_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_firstpaediatricassessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.general_examination_performed tooltip_id='general_examination_performed' label=first_paediatric_assessment.get_general_examination_performed_help_label_text reference=first_paediatric_assessment.get_general_examination_performed_help_reference_text data_position='top left' %} {% url 'developmental_learning_or_schooling_problems' first_paediatric_assessment_id=first_paediatric_assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.developmental_learning_or_schooling_problems tooltip_id='developmental_learning_or_schooling_problems' label=first_paediatric_assessment.get_developmental_learning_or_schooling_problems_help_label_text reference=first_paediatric_assessment.get_developmental_learning_or_schooling_problems_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_firstpaediatricassessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.developmental_learning_or_schooling_problems tooltip_id='developmental_learning_or_schooling_problems' label=first_paediatric_assessment.get_developmental_learning_or_schooling_problems_help_label_text reference=first_paediatric_assessment.get_developmental_learning_or_schooling_problems_help_reference_text data_position='top left' %} {% url 'behavioural_or_emotional_problems' first_paediatric_assessment_id=first_paediatric_assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.behavioural_or_emotional_problems tooltip_id='behavioural_or_emotional_problems' label=first_paediatric_assessment.get_behavioural_or_emotional_problems_help_label_text reference=first_paediatric_assessment.get_behavioural_or_emotional_problems_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_firstpaediatricassessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.behavioural_or_emotional_problems tooltip_id='behavioural_or_emotional_problems' label=first_paediatric_assessment.get_behavioural_or_emotional_problems_help_label_text reference=first_paediatric_assessment.get_behavioural_or_emotional_problems_help_reference_text data_position='top left' %} {% url 'has_number_of_episodes_since_the_first_been_documented' first_paediatric_assessment_id=first_paediatric_assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.has_number_of_episodes_since_the_first_been_documented tooltip_id='has_number_of_episodes_since_the_first_been_documented' label=first_paediatric_assessment.get_has_number_of_episodes_since_the_first_been_documented_help_label_text reference=first_paediatric_assessment.get_has_number_of_episodes_since_the_first_been_documented_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_firstpaediatricassessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.has_number_of_episodes_since_the_first_been_documented tooltip_id='has_number_of_episodes_since_the_first_been_documented' label=first_paediatric_assessment.get_has_number_of_episodes_since_the_first_been_documented_help_label_text reference=first_paediatric_assessment.get_has_number_of_episodes_since_the_first_been_documented_help_reference_text data_position='top left' %}
{% url 'neurological_examination_performed' first_paediatric_assessment_id=first_paediatric_assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.neurological_examination_performed tooltip_id='neurological_examination_performed' label=first_paediatric_assessment.get_neurological_examination_performed_help_label_text reference=first_paediatric_assessment.get_neurological_examination_performed_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_firstpaediatricassessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#when_the_first_epileptic_episode_occurred' hx_trigger='click' hx_swap='innerHTML' test_positive=first_paediatric_assessment.neurological_examination_performed tooltip_id='neurological_examination_performed' label=first_paediatric_assessment.get_neurological_examination_performed_help_label_text reference=first_paediatric_assessment.get_neurological_examination_performed_help_reference_text data_position='top left' %}
From 67a17c5e4298d6b4cb91b714a7483d0f35a84cca Mon Sep 17 00:00:00 2001 From: Michael Barton Date: Mon, 26 Jan 2026 16:40:50 +0000 Subject: [PATCH 04/19] Disable epilepsy context for old cohorts --- epilepsy12/views/epilepsy_context_views.py | 1 + .../partials/epilepsy_context/epilepsy_diagnosis_withdrawn.html | 2 +- .../epilepsy_context/experienced_prolonged_focal_seizures.html | 2 +- .../experienced_prolonged_generalized_convulsive_seizures.html | 2 +- .../epilepsy_context/is_there_a_family_history_of_epilepsy.html | 2 +- .../epilepsy_context/previous_acute_symptomatic_seizure.html | 2 +- .../partials/epilepsy_context/previous_febrile_seizure.html | 2 +- .../partials/epilepsy_context/previous_neonatal_seizures.html | 2 +- .../were_any_of_the_epileptic_seizures_convulsive.html | 2 +- 9 files changed, 9 insertions(+), 8 deletions(-) diff --git a/epilepsy12/views/epilepsy_context_views.py b/epilepsy12/views/epilepsy_context_views.py index 6746fb6a0..bda8c6b18 100644 --- a/epilepsy12/views/epilepsy_context_views.py +++ b/epilepsy12/views/epilepsy_context_views.py @@ -27,6 +27,7 @@ def epilepsy_context(request, case_id): context = { "case_id": case_id, + "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.locked and request.user.has_perm("change_epilepsycontext")), "registration": registration, "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, diff --git a/templates/epilepsy12/partials/epilepsy_context/epilepsy_diagnosis_withdrawn.html b/templates/epilepsy12/partials/epilepsy_context/epilepsy_diagnosis_withdrawn.html index b00a5689a..6b067158c 100644 --- a/templates/epilepsy12/partials/epilepsy_context/epilepsy_diagnosis_withdrawn.html +++ b/templates/epilepsy12/partials/epilepsy_context/epilepsy_diagnosis_withdrawn.html @@ -1,2 +1,2 @@ {% url 'diagnosis_of_epilepsy_withdrawn' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#diagnosis_of_epilepsy_withdrawn" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.diagnosis_of_epilepsy_withdrawn tooltip_id='diagnosis_of_epilepsy_withdrawn_tooltip' label=epilepsy_context.get_diagnosis_of_epilepsy_withdrawn_help_label_text reference=epilepsy_context.get_diagnosis_of_epilepsy_withdrawn_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#diagnosis_of_epilepsy_withdrawn" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.diagnosis_of_epilepsy_withdrawn tooltip_id='diagnosis_of_epilepsy_withdrawn_tooltip' label=epilepsy_context.get_diagnosis_of_epilepsy_withdrawn_help_label_text reference=epilepsy_context.get_diagnosis_of_epilepsy_withdrawn_help_reference_text data_position='top left' %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_focal_seizures.html b/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_focal_seizures.html index d14e61847..9b6b5b5c9 100644 --- a/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_focal_seizures.html +++ b/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_focal_seizures.html @@ -1,2 +1,2 @@ {% url 'experienced_prolonged_focal_seizures' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#experienced_prolonged_focal_seizures" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.experienced_prolonged_focal_seizures tooltip_id='experienced_prolonged_focal_seizures_tooltip' label=epilepsy_context.get_experienced_prolonged_focal_seizures_help_label_text reference=epilepsy_context.get_experienced_prolonged_focal_seizures_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#experienced_prolonged_focal_seizures" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.experienced_prolonged_focal_seizures tooltip_id='experienced_prolonged_focal_seizures_tooltip' label=epilepsy_context.get_experienced_prolonged_focal_seizures_help_label_text reference=epilepsy_context.get_experienced_prolonged_focal_seizures_help_reference_text data_position='top left' %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_generalized_convulsive_seizures.html b/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_generalized_convulsive_seizures.html index 59e65d32e..cc12ea3f1 100644 --- a/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_generalized_convulsive_seizures.html +++ b/templates/epilepsy12/partials/epilepsy_context/experienced_prolonged_generalized_convulsive_seizures.html @@ -1,2 +1,2 @@ {% url 'experienced_prolonged_generalized_convulsive_seizures' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#experienced_prolonged_generalized_convulsive_seizures" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.experienced_prolonged_generalized_convulsive_seizures tooltip_id='experienced_prolonged_generalized_convulsive_seizures_tooltip' label=epilepsy_context.get_experienced_prolonged_generalized_convulsive_seizures_help_label_text reference=epilepsy_context.get_experienced_prolonged_generalized_convulsive_seizures_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#experienced_prolonged_generalized_convulsive_seizures" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.experienced_prolonged_generalized_convulsive_seizures tooltip_id='experienced_prolonged_generalized_convulsive_seizures_tooltip' label=epilepsy_context.get_experienced_prolonged_generalized_convulsive_seizures_help_label_text reference=epilepsy_context.get_experienced_prolonged_generalized_convulsive_seizures_help_reference_text data_position='top left' %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/epilepsy_context/is_there_a_family_history_of_epilepsy.html b/templates/epilepsy12/partials/epilepsy_context/is_there_a_family_history_of_epilepsy.html index f85e196ec..a58a12481 100644 --- a/templates/epilepsy12/partials/epilepsy_context/is_there_a_family_history_of_epilepsy.html +++ b/templates/epilepsy12/partials/epilepsy_context/is_there_a_family_history_of_epilepsy.html @@ -1,2 +1,2 @@ {% url 'is_there_a_family_history_of_epilepsy' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#is_there_a_family_history_of_epilepsy" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.is_there_a_family_history_of_epilepsy tooltip_id='is_there_a_family_history_of_epilepsy_tooltip' label=epilepsy_context.get_is_there_a_family_history_of_epilepsy_help_label_text reference=epilepsy_context.get_is_there_a_family_history_of_epilepsy_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#is_there_a_family_history_of_epilepsy" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.is_there_a_family_history_of_epilepsy tooltip_id='is_there_a_family_history_of_epilepsy_tooltip' label=epilepsy_context.get_is_there_a_family_history_of_epilepsy_help_label_text reference=epilepsy_context.get_is_there_a_family_history_of_epilepsy_help_reference_text data_position='top left' %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/epilepsy_context/previous_acute_symptomatic_seizure.html b/templates/epilepsy12/partials/epilepsy_context/previous_acute_symptomatic_seizure.html index 87798bc02..86d0be194 100644 --- a/templates/epilepsy12/partials/epilepsy_context/previous_acute_symptomatic_seizure.html +++ b/templates/epilepsy12/partials/epilepsy_context/previous_acute_symptomatic_seizure.html @@ -1,2 +1,2 @@ {% url 'previous_acute_symptomatic_seizure' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#previous_acute_symptomatic_seizure" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.previous_acute_symptomatic_seizure tooltip_id='previous_acute_symptomatic_seizure_tooltip' label=epilepsy_context.get_previous_acute_symptomatic_seizure_help_label_text reference=epilepsy_context.get_previous_acute_symptomatic_seizure_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#previous_acute_symptomatic_seizure" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.previous_acute_symptomatic_seizure tooltip_id='previous_acute_symptomatic_seizure_tooltip' label=epilepsy_context.get_previous_acute_symptomatic_seizure_help_label_text reference=epilepsy_context.get_previous_acute_symptomatic_seizure_help_reference_text data_position='top left' %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/epilepsy_context/previous_febrile_seizure.html b/templates/epilepsy12/partials/epilepsy_context/previous_febrile_seizure.html index 4312483ae..5f6fc922a 100644 --- a/templates/epilepsy12/partials/epilepsy_context/previous_febrile_seizure.html +++ b/templates/epilepsy12/partials/epilepsy_context/previous_febrile_seizure.html @@ -1,2 +1,2 @@ {% url 'previous_febrile_seizure' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#previous_febrile_seizure" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.previous_febrile_seizure tooltip_id='previous_febrile_seizure_tooltip' label=epilepsy_context.get_previous_febrile_seizure_help_label_text reference=epilepsy_context.get_previous_febrile_seizure_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#previous_febrile_seizure" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.previous_febrile_seizure tooltip_id='previous_febrile_seizure_tooltip' label=epilepsy_context.get_previous_febrile_seizure_help_label_text reference=epilepsy_context.get_previous_febrile_seizure_help_reference_text data_position='top left' %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/epilepsy_context/previous_neonatal_seizures.html b/templates/epilepsy12/partials/epilepsy_context/previous_neonatal_seizures.html index a5b6d7576..08569552f 100644 --- a/templates/epilepsy12/partials/epilepsy_context/previous_neonatal_seizures.html +++ b/templates/epilepsy12/partials/epilepsy_context/previous_neonatal_seizures.html @@ -1,2 +1,2 @@ {% url 'previous_neonatal_seizures' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#previous_neonatal_seizures" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.previous_neonatal_seizures tooltip_id='previous_neonatal_seizures_tooltip' label=epilepsy_context.get_previous_neonatal_seizures_help_label_text reference=epilepsy_context.get_previous_neonatal_seizures_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=uncertain_choices hx_post=hx_post hx_target="#previous_neonatal_seizures" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.previous_neonatal_seizures tooltip_id='previous_neonatal_seizures_tooltip' label=epilepsy_context.get_previous_neonatal_seizures_help_label_text reference=epilepsy_context.get_previous_neonatal_seizures_help_reference_text data_position='top left' %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/epilepsy_context/were_any_of_the_epileptic_seizures_convulsive.html b/templates/epilepsy12/partials/epilepsy_context/were_any_of_the_epileptic_seizures_convulsive.html index df7067f9c..c9a7850a2 100644 --- a/templates/epilepsy12/partials/epilepsy_context/were_any_of_the_epileptic_seizures_convulsive.html +++ b/templates/epilepsy12/partials/epilepsy_context/were_any_of_the_epileptic_seizures_convulsive.html @@ -1,2 +1,2 @@ {% url 'were_any_of_the_epileptic_seizures_convulsive' epilepsy_context_id=epilepsy_context.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#were_any_of_the_epileptic_seizures_convulsive" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.were_any_of_the_epileptic_seizures_convulsive tooltip_id='were_any_of_the_epileptic_seizures_convulsive_tooltip' label=epilepsy_context.get_were_any_of_the_epileptic_seizures_convulsive_help_label_text reference=epilepsy_context.get_were_any_of_the_epileptic_seizures_convulsive_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_epilepsycontext %} \ No newline at end of file +{% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#were_any_of_the_epileptic_seizures_convulsive" hx_trigger="click" hx_swap="innerHTML" test_positive=epilepsy_context.were_any_of_the_epileptic_seizures_convulsive tooltip_id='were_any_of_the_epileptic_seizures_convulsive_tooltip' label=epilepsy_context.get_were_any_of_the_epileptic_seizures_convulsive_help_label_text reference=epilepsy_context.get_were_any_of_the_epileptic_seizures_convulsive_help_reference_text data_position="top left" %} \ No newline at end of file From bf91a850c17976cf2af0996e92673ec8afaa33ec Mon Sep 17 00:00:00 2001 From: Michael Barton Date: Mon, 26 Jan 2026 16:52:21 +0000 Subject: [PATCH 05/19] Disable add episodes for closed cohort Also fix incorrect field used before (it's editable not not locked) --- epilepsy12/views/epilepsy_context_views.py | 2 +- epilepsy12/views/first_paediatric_assessment_views.py | 3 ++- epilepsy12/views/multiaxial_diagnosis_views.py | 1 + .../epilepsy12/partials/multiaxial_diagnosis/episodes.html | 6 +++--- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/epilepsy12/views/epilepsy_context_views.py b/epilepsy12/views/epilepsy_context_views.py index bda8c6b18..c1608b831 100644 --- a/epilepsy12/views/epilepsy_context_views.py +++ b/epilepsy12/views/epilepsy_context_views.py @@ -27,7 +27,7 @@ def epilepsy_context(request, case_id): context = { "case_id": case_id, - "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.locked and request.user.has_perm("change_epilepsycontext")), + "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.editable and request.user.has_perm("change_epilepsycontext")), "registration": registration, "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, diff --git a/epilepsy12/views/first_paediatric_assessment_views.py b/epilepsy12/views/first_paediatric_assessment_views.py index e615e7af5..7894b727c 100644 --- a/epilepsy12/views/first_paediatric_assessment_views.py +++ b/epilepsy12/views/first_paediatric_assessment_views.py @@ -1,6 +1,7 @@ from django.contrib.auth.decorators import permission_required from django.http import HttpResponse from epilepsy12.constants import * +from epilepsy12.models_folder import registration from ..common_view_functions import ( validate_and_update_model, recalculate_form_generate_response, @@ -37,7 +38,7 @@ def first_paediatric_assessment(request, case_id) -> HttpResponse: context = { "case_id": case_id, - "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.locked and request.user.has_perm("change_firstpaediatricassessment")), + "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.editable and request.user.has_perm("change_firstpaediatricassessment")), "registration": registration, "first_paediatric_assessment": first_paediatric_assessment, "chronicity_selection": CHRONICITY, diff --git a/epilepsy12/views/multiaxial_diagnosis_views.py b/epilepsy12/views/multiaxial_diagnosis_views.py index 5409fcfc4..aa0ba2ba5 100644 --- a/epilepsy12/views/multiaxial_diagnosis_views.py +++ b/epilepsy12/views/multiaxial_diagnosis_views.py @@ -140,6 +140,7 @@ def multiaxial_diagnosis(request, case_id): "mental_health_issues_choices": NEUROPSYCHIATRIC, "global_developmental_delay_or_learning_difficulties_severity_choices": SEVERITY, "organisation_id": organisation_id, + "editable": request.user.is_rcpch_audit_team_member or registration.case.editable } response = recalculate_form_generate_response( diff --git a/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html b/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html index ab5af56a0..5f2a65545 100644 --- a/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html +++ b/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html @@ -72,7 +72,7 @@
-{% if not perms.epilepsy12.add_comorbidity or not perms.epilepsy12.change_comorbidity or not perms.epilepsy12.delete_comorbidity %} +{% if not can_change_comorbidity or not perms.epilepsy12.add_comorbidity or not perms.epilepsy12.change_comorbidity or not perms.epilepsy12.delete_comorbidity %} {% permission_text perms.epilepsy12.add_comorbidity perms.epilepsy12.change_comorbidity perms.epilepsy12.delete_comorbidity 'comorbidities' %} {% endif %} \ No newline at end of file diff --git a/templates/epilepsy12/partials/multiaxial_diagnosis/comorbidities/comorbidity_section.html b/templates/epilepsy12/partials/multiaxial_diagnosis/comorbidities/comorbidity_section.html index 94c6f8bb1..c43ca852b 100644 --- a/templates/epilepsy12/partials/multiaxial_diagnosis/comorbidities/comorbidity_section.html +++ b/templates/epilepsy12/partials/multiaxial_diagnosis/comorbidities/comorbidity_section.html @@ -2,7 +2,7 @@ {% csrf_token %}
{% url 'relevant_impairments_behavioural_educational' multiaxial_diagnosis_id=multiaxial_diagnosis.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#comorbidity_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.relevant_impairments_behavioural_educational tooltip_id='relevant_impairments_behavioural_educational_tooltip' label=multiaxial_diagnosis.get_relevant_impairments_behavioural_educational_help_label_text reference=multiaxial_diagnosis.get_relevant_impairments_behavioural_educational_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_comorbidity %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#comorbidity_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.relevant_impairments_behavioural_educational tooltip_id='relevant_impairments_behavioural_educational_tooltip' label=multiaxial_diagnosis.get_relevant_impairments_behavioural_educational_help_label_text reference=multiaxial_diagnosis.get_relevant_impairments_behavioural_educational_help_reference_text data_position='top left' enabled=can_change_comorbidity %} {% if multiaxial_diagnosis.relevant_impairments_behavioural_educational %}
diff --git a/templates/epilepsy12/partials/multiaxial_diagnosis/global_developmental_delay_or_learning_difficulties_section.html b/templates/epilepsy12/partials/multiaxial_diagnosis/global_developmental_delay_or_learning_difficulties_section.html index b978675ad..03936e7b1 100644 --- a/templates/epilepsy12/partials/multiaxial_diagnosis/global_developmental_delay_or_learning_difficulties_section.html +++ b/templates/epilepsy12/partials/multiaxial_diagnosis/global_developmental_delay_or_learning_difficulties_section.html @@ -1,9 +1,9 @@
{% url 'global_developmental_delay_or_learning_difficulties' multiaxial_diagnosis_id=multiaxial_diagnosis.pk as hx_post %} -{% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#global_developmental_delay_or_learning_difficulties_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.global_developmental_delay_or_learning_difficulties tooltip_id='global_developmental_delay_or_learning_difficulties_tooltip' label=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_help_label_text reference=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_multiaxialdiagnosis %} +{% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#global_developmental_delay_or_learning_difficulties_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.global_developmental_delay_or_learning_difficulties tooltip_id='global_developmental_delay_or_learning_difficulties_tooltip' label=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_help_label_text reference=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_help_reference_text data_position='top left' enabled=can_change_multiaxial_diagnosis %} {% if multiaxial_diagnosis.global_developmental_delay_or_learning_difficulties %} {% url 'global_developmental_delay_or_learning_difficulties_severity' multiaxial_diagnosis_id=multiaxial_diagnosis.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with hx_post=hx_post hx_target="#global_developmental_delay_or_learning_difficulties_section" hx_trigger="click" hx_swap="innerHTML" choices=global_developmental_delay_or_learning_difficulties_severity_choices test_positive=multiaxial_diagnosis.global_developmental_delay_or_learning_difficulties_severity tooltip_id='global_developmental_delay_or_learning_difficulties_severity_tooltip' label=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_severity_help_label_text reference=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_severity_help_reference_text hx_default_text='Select severity' hx_name='global_developmental_delay_or_learning_difficulties_severity' data_position="top left" enabled=perms.epilepsy12.change_multiaxialdiagnosis %} + {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with hx_post=hx_post hx_target="#global_developmental_delay_or_learning_difficulties_section" hx_trigger="click" hx_swap="innerHTML" choices=global_developmental_delay_or_learning_difficulties_severity_choices test_positive=multiaxial_diagnosis.global_developmental_delay_or_learning_difficulties_severity tooltip_id='global_developmental_delay_or_learning_difficulties_severity_tooltip' label=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_severity_help_label_text reference=multiaxial_diagnosis.get_global_developmental_delay_or_learning_difficulties_severity_help_reference_text hx_default_text='Select severity' hx_name='global_developmental_delay_or_learning_difficulties_severity' data_position="top left" enabled=can_change_multiaxial_diagnosis %} {% endif %}
\ No newline at end of file diff --git a/templates/epilepsy12/partials/multiaxial_diagnosis/mental_health_section.html b/templates/epilepsy12/partials/multiaxial_diagnosis/mental_health_section.html index 2b00e2fc4..620bcd538 100644 --- a/templates/epilepsy12/partials/multiaxial_diagnosis/mental_health_section.html +++ b/templates/epilepsy12/partials/multiaxial_diagnosis/mental_health_section.html @@ -1,6 +1,6 @@
{% url 'autistic_spectrum_disorder' multiaxial_diagnosis_id=multiaxial_diagnosis.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.autistic_spectrum_disorder tooltip_id='autistic_spectrum_disorder_tooltip' label=multiaxial_diagnosis.get_autistic_spectrum_disorder_help_label_text reference=multiaxial_diagnosis.get_autistic_spectrum_disorder_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_multiaxialdiagnosis %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.autistic_spectrum_disorder tooltip_id='autistic_spectrum_disorder_tooltip' label=multiaxial_diagnosis.get_autistic_spectrum_disorder_help_label_text reference=multiaxial_diagnosis.get_autistic_spectrum_disorder_help_reference_text data_position='top left' enabled=can_change_multiaxial_diagnosis %}
@@ -9,13 +9,13 @@
{% url 'mental_health_screen' multiaxial_diagnosis_id=multiaxial_diagnosis.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.mental_health_screen tooltip_id='mental_health_screen_tooltip' label=multiaxial_diagnosis.get_mental_health_screen_help_label_text reference=multiaxial_diagnosis.get_mental_health_screen_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_multiaxialdiagnosis %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.mental_health_screen tooltip_id='mental_health_screen_tooltip' label=multiaxial_diagnosis.get_mental_health_screen_help_label_text reference=multiaxial_diagnosis.get_mental_health_screen_help_reference_text data_position='top left' enabled=can_change_multiaxial_diagnosis %} {% url 'mental_health_issue_identified' multiaxial_diagnosis_id=multiaxial_diagnosis.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.mental_health_issue_identified tooltip_id='mental_health_issue_identified_tooltip' label=multiaxial_diagnosis.get_mental_health_issue_identified_help_label_text reference=multiaxial_diagnosis.get_mental_health_issue_identified_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_multiaxialdiagnosis %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_section' hx_trigger='click' hx_swap='innerHTML' test_positive=multiaxial_diagnosis.mental_health_issue_identified tooltip_id='mental_health_issue_identified_tooltip' label=multiaxial_diagnosis.get_mental_health_issue_identified_help_label_text reference=multiaxial_diagnosis.get_mental_health_issue_identified_help_reference_text data_position='top left' enabled=can_change_multiaxial_diagnosis %} {% if multiaxial_diagnosis.mental_health_issue_identified %} {% url 'mental_health_issues' multiaxial_diagnosis_id=multiaxial_diagnosis.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/multiple_choice_multiple_toggle_button.html' with hx_post=hx_post hx_target="#mental_health_section" hx_trigger="click" hx_swap="innerHTML" choices=mental_health_issues_choices test_positive=multiaxial_diagnosis.mental_health_issues tooltip_id='mental_health_issue_tooltip' label=multiaxial_diagnosis.get_mental_health_issues_help_label_text reference=multiaxial_diagnosis.get_mental_health_issues_help_reference_text hx_default_text='Select mental health issue' hx_name='mental_health_issue' data_position="top left" enabled=perms.epilepsy12.change_multiaxialdiagnosis %} + {% include 'epilepsy12/partials/page_elements/multiple_choice_multiple_toggle_button.html' with hx_post=hx_post hx_target="#mental_health_section" hx_trigger="click" hx_swap="innerHTML" choices=mental_health_issues_choices test_positive=multiaxial_diagnosis.mental_health_issues tooltip_id='mental_health_issue_tooltip' label=multiaxial_diagnosis.get_mental_health_issues_help_label_text reference=multiaxial_diagnosis.get_mental_health_issues_help_reference_text hx_default_text='Select mental health issue' hx_name='mental_health_issue' data_position="top left" enabled=can_change_multiaxial_diagnosis %} {% endif %}
From 7ded33637839cf99c813fec6b501435ea355711b Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 15:05:54 +0000 Subject: [PATCH 09/19] WIP disable assessment for closed cohorts --- epilepsy12/views/assessment_views.py | 4 ++-- .../partials/assessment/epilepsy_nurse.html | 8 ++++---- .../partials/assessment/epilepsy_surgery.html | 18 +++++++++--------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/epilepsy12/views/assessment_views.py b/epilepsy12/views/assessment_views.py index 8149b0fbf..a2204d580 100644 --- a/epilepsy12/views/assessment_views.py +++ b/epilepsy12/views/assessment_views.py @@ -1849,8 +1849,8 @@ def assessment(request, case_id): "active_template": "assessment", "organisation_list": organisation_list, "organisation_id": organisation_id, - "show_input_date": assessment.childrens_epilepsy_surgical_service_input_date - is not None, + "show_input_date": assessment.childrens_epilepsy_surgical_service_input_date is not None, + "enabled": request.user.is_rcpch_audit_team_member or (registration.case.editable() and request.user.has_perm("epilepsy12.change_assessment")), } # add previous and current sites to context diff --git a/templates/epilepsy12/partials/assessment/epilepsy_nurse.html b/templates/epilepsy12/partials/assessment/epilepsy_nurse.html index 7a053ddbf..aafd47b9e 100644 --- a/templates/epilepsy12/partials/assessment/epilepsy_nurse.html +++ b/templates/epilepsy12/partials/assessment/epilepsy_nurse.html @@ -4,7 +4,7 @@
{% url "epilepsy_specialist_nurse_referral_made" assessment_id=assessment.pk as hx_post %} - {% include "epilepsy12/partials/page_elements/toggle_button.html" with test_positive=assessment.epilepsy_specialist_nurse_referral_made hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="click" tooltip_id="epilepsy_specialist_nurse_referral_made_tooltip" label=assessment.get_epilepsy_specialist_nurse_referral_made_help_label_text reference=assessment.get_epilepsy_specialist_nurse_referral_made_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_assessment %} + {% include "epilepsy12/partials/page_elements/toggle_button.html" with test_positive=assessment.epilepsy_specialist_nurse_referral_made hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="click" tooltip_id="epilepsy_specialist_nurse_referral_made_tooltip" label=assessment.get_epilepsy_specialist_nurse_referral_made_help_label_text reference=assessment.get_epilepsy_specialist_nurse_referral_made_help_reference_text data_position="top left" enabled=enabled %}
{% if assessment.epilepsy_specialist_nurse_referral_made %} @@ -13,15 +13,15 @@
{% url "epilepsy_specialist_nurse_referral_date" assessment_id=assessment.pk as hx_post %} - {% include "epilepsy12/partials/page_elements/date_field.html" with hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="change delay:1s" label=assessment.get_epilepsy_specialist_nurse_referral_date_help_label_text reference=assessment.get_epilepsy_specialist_nurse_referral_date_help_reference_text date_value=assessment.epilepsy_specialist_nurse_referral_date data_position="top left" input_date_field_name="epilepsy_specialist_nurse_referral_date" error_message=error_message enabled=perms.epilepsy12.change_assessment has_permission=perms.epilepsy12.change_assessment %} + {% include "epilepsy12/partials/page_elements/date_field.html" with hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="change delay:1s" label=assessment.get_epilepsy_specialist_nurse_referral_date_help_label_text reference=assessment.get_epilepsy_specialist_nurse_referral_date_help_reference_text date_value=assessment.epilepsy_specialist_nurse_referral_date data_position="top left" input_date_field_name="epilepsy_specialist_nurse_referral_date" error_message=error_message enabled=enabled has_permission=perms.epilepsy12.change_assessment %} {% url "epilepsy_specialist_nurse_input_achieved" assessment_id=assessment.pk as hx_post %} - {% include "epilepsy12/partials/page_elements/toggle_button.html" with test_positive=assessment.epilepsy_specialist_nurse_input_achieved hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="click" tooltip_id="epilepsy_specialist_nurse_input_achieved_tooltip" label=assessment.get_epilepsy_specialist_nurse_input_achieved_help_label_text reference=assessment.get_epilepsy_specialist_nurse_achieved_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_assessment %} + {% include "epilepsy12/partials/page_elements/toggle_button.html" with test_positive=assessment.epilepsy_specialist_nurse_input_achieved hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="click" tooltip_id="epilepsy_specialist_nurse_input_achieved_tooltip" label=assessment.get_epilepsy_specialist_nurse_input_achieved_help_label_text reference=assessment.get_epilepsy_specialist_nurse_achieved_help_reference_text data_position="top left" enabled=enabled %} {% if assessment.epilepsy_specialist_nurse_input_achieved %} {% url "epilepsy_specialist_nurse_input_date" assessment_id=assessment.pk as hx_post %} - {% include "epilepsy12/partials/page_elements/date_field.html" with hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="change delay:1s" label=assessment.get_epilepsy_specialist_nurse_input_date_help_label_text reference=assessment.get_epilepsy_specialist_nurse_input_date_help_reference_text date_value=assessment.epilepsy_specialist_nurse_input_date data_position="top left" input_date_field_name="epilepsy_specialist_nurse_input_date" error_message=error_message enabled=perms.epilepsy12.change_assessment has_permission=perms.epilepsy12.change_assessment %} + {% include "epilepsy12/partials/page_elements/date_field.html" with hx_post=hx_post hx_swap="innerHTML" hx_target="#epilepsy_specialist_nurse" hx_trigger="change delay:1s" label=assessment.get_epilepsy_specialist_nurse_input_date_help_label_text reference=assessment.get_epilepsy_specialist_nurse_input_date_help_reference_text date_value=assessment.epilepsy_specialist_nurse_input_date data_position="top left" input_date_field_name="epilepsy_specialist_nurse_input_date" error_message=error_message enabled=enabled has_permission=perms.epilepsy12.change_assessment %}
diff --git a/templates/epilepsy12/partials/assessment/epilepsy_surgery.html b/templates/epilepsy12/partials/assessment/epilepsy_surgery.html index be9f13056..9600f3237 100644 --- a/templates/epilepsy12/partials/assessment/epilepsy_surgery.html +++ b/templates/epilepsy12/partials/assessment/epilepsy_surgery.html @@ -17,26 +17,26 @@
  • Children with epilepsy associated with hypothalamic hamartoma
  • {% url 'childrens_epilepsy_surgical_service_referral_criteria_met' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.childrens_epilepsy_surgical_service_referral_criteria_met hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="click" tooltip_id='childrens_epilepsy_surgical_service_referral_criteria_met_tooltip' label=assessment.get_childrens_epilepsy_surgical_service_referral_criteria_met_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_referral_criteria_met_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.childrens_epilepsy_surgical_service_referral_criteria_met hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="click" tooltip_id='childrens_epilepsy_surgical_service_referral_criteria_met_tooltip' label=assessment.get_childrens_epilepsy_surgical_service_referral_criteria_met_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_referral_criteria_met_help_reference_text data_position="top left" enabled=enabled %}
    {% url 'childrens_epilepsy_surgical_service_referral_made' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.childrens_epilepsy_surgical_service_referral_made hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="click" tooltip_id='childrens_epilepsy_surgical_service_tooltip' label=assessment.get_childrens_epilepsy_surgical_service_referral_made_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_referral_made_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.childrens_epilepsy_surgical_service_referral_made hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="click" tooltip_id='childrens_epilepsy_surgical_service_tooltip' label=assessment.get_childrens_epilepsy_surgical_service_referral_made_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_referral_made_help_reference_text data_position="top left" enabled=enabled %} {% if assessment.childrens_epilepsy_surgical_service_referral_made %}
    {% url 'childrens_epilepsy_surgical_service_referral_date' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="change delay:1s" label=assessment.get_childrens_epilepsy_surgical_service_referral_date_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_referral_date_help_reference_text date_value=assessment.childrens_epilepsy_surgical_service_referral_date input_date_field_name="childrens_epilepsy_surgical_service_referral_date" error_message=error_message enabled=perms.epilepsy12.change_assessment has_permission=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="change delay:1s" label=assessment.get_childrens_epilepsy_surgical_service_referral_date_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_referral_date_help_reference_text date_value=assessment.childrens_epilepsy_surgical_service_referral_date input_date_field_name="childrens_epilepsy_surgical_service_referral_date" error_message=error_message enabled=enabled has_permission=perms.epilepsy12.change_assessment %} {% if show_input_date %}
    {% url 'childrens_epilepsy_surgical_service_input_date' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="change delay:1s" label=assessment.get_childrens_epilepsy_surgical_service_input_date_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_input_date_help_reference_text date_value=assessment.childrens_epilepsy_surgical_service_input_date input_date_field_name="childrens_epilepsy_surgical_service_input_date" error_message=error_message enabled=perms.epilepsy12.change_assessment has_permission=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#childrens_epilepsy_surgical_service" hx_trigger="change delay:1s" label=assessment.get_childrens_epilepsy_surgical_service_input_date_help_label_text reference=assessment.get_childrens_epilepsy_surgical_service_input_date_help_reference_text date_value=assessment.childrens_epilepsy_surgical_service_input_date input_date_field_name="childrens_epilepsy_surgical_service_input_date" error_message=error_message enabled=enabled %}
    @@ -45,7 +45,7 @@
    Edit
    {% endif %} @@ -142,7 +142,7 @@ {% url 'epilepsy_surgery_centre' assessment_id=assessment.pk as hx_post %} {% url 'update_epilepsy_surgery_centre_pressed' assessment_id=assessment.pk site_id=active_surgical_site.pk action='cancel' as hx_cancel %} - {% include 'epilepsy12/partials/page_elements/organisations_select.html' with organisation_list=organisation_list hx_post=hx_post hx_target="#childrens_epilepsy_surgical_service" hx_trigger="click" hx_swap="innerHTML" hx_name="epilepsy_surgery_centre" test_positive=None label="Allocate Children's Surgical Centre" hx_default_text="Search children's surgical centres..." data_position="top left" enabled=perms.epilepsy12.change_assessment has_permission=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/organisations_select.html' with organisation_list=organisation_list hx_post=hx_post hx_target="#childrens_epilepsy_surgical_service" hx_trigger="click" hx_swap="innerHTML" hx_name="epilepsy_surgery_centre" test_positive=None label="Allocate Children's Surgical Centre" hx_default_text="Search children's surgical centres..." data_position="top left" enabled=enabled has_permission=perms.epilepsy12.change_assessment %}
    {% endif %} From 800aa4e1926a0d3d8f8869810b0286091146725b Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 15:38:26 +0000 Subject: [PATCH 10/19] Finish disabling assessment for closed cohorts --- .../assessment/consultant_paediatrician.html | 12 ++++++------ .../assessment/paediatric_neurology.html | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/templates/epilepsy12/partials/assessment/consultant_paediatrician.html b/templates/epilepsy12/partials/assessment/consultant_paediatrician.html index f13abd9e5..7ee0cc519 100644 --- a/templates/epilepsy12/partials/assessment/consultant_paediatrician.html +++ b/templates/epilepsy12/partials/assessment/consultant_paediatrician.html @@ -3,7 +3,7 @@
    {% url 'consultant_paediatrician_referral_made' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.consultant_paediatrician_referral_made hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="click" tooltip_id='consultant_paediatrician_referral_made_tooltip' label=assessment.get_consultant_paediatrician_referral_made_help_label_text reference=assessment.get_consultant_paediatrician_referral_made_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.consultant_paediatrician_referral_made hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="click" tooltip_id='consultant_paediatrician_referral_made_tooltip' label=assessment.get_consultant_paediatrician_referral_made_help_label_text reference=assessment.get_consultant_paediatrician_referral_made_help_reference_text data_position="top left" enabled=enabled %}
    {% if assessment.consultant_paediatrician_referral_made %} @@ -11,14 +11,14 @@
    {% url 'consultant_paediatrician_referral_date' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="change delay:1s" label=assessment.get_consultant_paediatrician_referral_date_help_label_text reference=assessment.get_consultant_paediatrician_referral_date_help_reference_text date_value=assessment.consultant_paediatrician_referral_date input_date_field_name="consultant_paediatrician_referral_date" data_position="top left" error_message=error_message enabled=perms.epilepsy12.change_assessment has_permission=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="change delay:1s" label=assessment.get_consultant_paediatrician_referral_date_help_label_text reference=assessment.get_consultant_paediatrician_referral_date_help_reference_text date_value=assessment.consultant_paediatrician_referral_date input_date_field_name="consultant_paediatrician_referral_date" data_position="top left" error_message=error_message enabled=enabled has_permission=perms.epilepsy12.change_assessment %} {% url 'consultant_paediatrician_input_achieved' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.consultant_paediatrician_input_achieved hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="click" tooltip_id='consultant_paediatrician_input_achieved_tooltip' label=assessment.get_consultant_paediatrician_input_achieved_help_label_text reference=assessment.get_consultant_paediatrician_achieved_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=assessment.consultant_paediatrician_input_achieved hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="click" tooltip_id='consultant_paediatrician_input_achieved_tooltip' label=assessment.get_consultant_paediatrician_input_achieved_help_label_text reference=assessment.get_consultant_paediatrician_achieved_help_reference_text data_position="top left" enabled=enabled %} {% if assessment.consultant_paediatrician_input_achieved %} {% url 'consultant_paediatrician_input_date' assessment_id=assessment.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="change delay:1s" label=assessment.get_consultant_paediatrician_input_date_help_label_text reference=assessment.get_consultant_paediatrician_input_date_help_reference_text date_value=assessment.consultant_paediatrician_input_date input_date_field_name="consultant_paediatrician_input_date" data_position="top left" error_message=error_message enabled=perms.epilepsy12.change_assessment has_permission=perms.epilepsy12.change_assessment %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_swap="innerHTML" hx_target="#general_paediatric" hx_trigger="change delay:1s" label=assessment.get_consultant_paediatrician_input_date_help_label_text reference=assessment.get_consultant_paediatrician_input_date_help_reference_text date_value=assessment.consultant_paediatrician_input_date input_date_field_name="consultant_paediatrician_input_date" data_position="top left" error_message=error_message enabled=enabled has_permission=perms.epilepsy12.change_assessment %}
    @@ -51,7 +51,7 @@
    {% endif %} @@ -97,7 +97,7 @@ {% url 'paediatric_neurology_centre' assessment_id=assessment.pk as hx_post %} {% url 'update_paediatric_neurology_centre_pressed' assessment_id=assessment.pk site_id=active_neurology_site.pk action='cancel' as hx_cancel %} - {% include 'epilepsy12/partials/page_elements/organisations_select.html' with organisation_list=organisation_list hx_post=hx_post hx_target="#paediatric_neurology" hx_trigger="click" hx_swap="innerHTML" hx_name="paediatric_neurology_centre" test_positive=None label="Allocate Paediatric Neurology Centre" hx_default_text="Search paediatric neurology centres..." data_position="top left" enabled=perms.epilepsy12.change_assessment hx_cancel=hx_cancel %} + {% include 'epilepsy12/partials/page_elements/organisations_select.html' with organisation_list=organisation_list hx_post=hx_post hx_target="#paediatric_neurology" hx_trigger="click" hx_swap="innerHTML" hx_name="paediatric_neurology_centre" test_positive=None label="Allocate Paediatric Neurology Centre" hx_default_text="Search paediatric neurology centres..." data_position="top left" enabled=enabled hx_cancel=hx_cancel %}
    {% endif %} From ce68f3d0627d843d582953b9424132a48932b431 Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 16:19:43 +0000 Subject: [PATCH 11/19] Disable investigation and management for closed cohorts Claude did the HTMX callbacks for management for me but I think it's going to make more sense to set them to "true" everywhere and have an up front permissions check. But makes sense to commit this now before I unleash the agent on that --- epilepsy12/views/investigation_views.py | 1 + epilepsy12/views/management_views.py | 138 ++++++++++++++++-- .../investigations/ct_head_status.html | 2 +- .../partials/investigations/ecg_status.html | 2 +- .../investigations/eeg_information.html | 8 +- .../investigations/mri_brain_information.html | 6 +- .../antiepilepsy_medicine.html | 24 +-- .../antiepilepsy_medicine_list.html | 10 +- .../antiepilepsy_medicines.html | 2 +- .../rescue_medicines.html | 2 +- .../management/individualised_care_plan.html | 22 +-- .../management/mental_health_support.html | 4 +- 12 files changed, 167 insertions(+), 54 deletions(-) diff --git a/epilepsy12/views/investigation_views.py b/epilepsy12/views/investigation_views.py index 058144ffb..412b68200 100644 --- a/epilepsy12/views/investigation_views.py +++ b/epilepsy12/views/investigation_views.py @@ -45,6 +45,7 @@ def investigations(request, case_id): "organisation_id": organisation_id, "eeg_declined": eeg_declined, "mri_brain_declined": mri_brain_declined, + "enabled": request.user.is_rcpch_audit_team_member or (registration.case.editable() and request.user.has_perm("epilepsy12.change_investigations")), } template_name = "epilepsy12/investigations.html" diff --git a/epilepsy12/views/management_views.py b/epilepsy12/views/management_views.py index 4c9371210..96e84d888 100644 --- a/epilepsy12/views/management_views.py +++ b/epilepsy12/views/management_views.py @@ -50,6 +50,8 @@ def management(request, case_id): ).get() organisation_id = site.organisation.pk + editable = request.user.is_rcpch_audit_team_member or registration.case.editable() + context = { "case_id": case_id, "registration": registration, @@ -59,6 +61,11 @@ def management(request, case_id): "audit_progress": registration.audit_progress, "active_template": "management", "organisation_id": organisation_id, + "editable": editable, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), + "can_add_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.add_antiepilepsymedicine"), + "can_delete_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.delete_antiepilepsymedicine"), } template_name = "epilepsy12/management.html" @@ -114,9 +121,12 @@ def has_an_aed_been_given(request, management_id): management=management, is_rescue_medicine=False ).order_by("-antiepilepsy_medicine_start_date") + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + context = { "management": management, "antiepilepsy_medicines": antiepilepsy_medicines, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicines.html" @@ -166,11 +176,14 @@ def add_antiepilepsy_medicine(request, management_id, is_rescue_medicine): management=management, ) + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "management_id": management_id, "is_rescue_medicine": is_rescue, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -208,10 +221,15 @@ def remove_antiepilepsy_medicine(request, antiepilepsy_medicine_id): management=management, is_rescue_medicine=is_rescue_medicine ).order_by("-antiepilepsy_medicine_start_date") + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + context = { "medicines": antiepilepsy_medicines, "management_id": management.pk, "is_rescue_medicine": is_rescue_medicine, + "can_add_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.add_antiepilepsymedicine"), + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), + "can_delete_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.delete_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine_list.html" @@ -300,10 +318,15 @@ def close_antiepilepsy_medicine(request, antiepilepsy_medicine_id): is_rescue_medicine=is_rescue_medicine, ).order_by("-antiepilepsy_medicine_start_date") + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "medicines": antiepilepsy_medicines, "management_id": antiepilepsy_medicine.management.pk, "is_rescue_medicine": is_rescue_medicine, + "can_add_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.add_antiepilepsymedicine"), + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), + "can_delete_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.delete_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine_list.html" @@ -425,11 +448,14 @@ def requires_pregnancy_prevention_programme(cohort, medicine_concept_id, age, se else: show_end_date = False + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "is_rescue_medicine": is_rescue, "show_end_date": show_end_date, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -488,11 +514,14 @@ def antiepilepsy_medicine_start_date(request, antiepilepsy_medicine_id): else: show_end_date = False + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "is_rescue_medicine": antiepilepsy_medicine.is_rescue_medicine, "show_end_date": show_end_date, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -576,11 +605,14 @@ def antiepilepsy_medicine_remove_stop_date(request, antiepilepsy_medicine_id): management=management, ) + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "is_rescue_medicine": antiepilepsy_medicine.is_rescue_medicine, "show_end_date": False, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -634,11 +666,14 @@ def antiepilepsy_medicine_stop_date(request, antiepilepsy_medicine_id): management=management, ) + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "is_rescue_medicine": antiepilepsy_medicine.is_rescue_medicine, "show_end_date": True, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -691,11 +726,14 @@ def antiepilepsy_medicine_risk_discussed(request, antiepilepsy_medicine_id): else: show_end_date = False + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "is_rescue_medicine": antiepilepsy_medicine.is_rescue_medicine, "show_end_date": show_end_date, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -748,11 +786,14 @@ def is_a_pregnancy_prevention_programme_in_place(request, antiepilepsy_medicine_ else: show_end_date = False + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "is_rescue_medicine": antiepilepsy_medicine.is_rescue_medicine, "show_end_date": show_end_date, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -807,11 +848,14 @@ def has_a_valproate_annual_risk_acknowledgement_form_been_completed( else: show_end_date = False + editable = request.user.is_rcpch_audit_team_member or antiepilepsy_medicine.management.registration.case.editable() + context = { "choices": choices, "antiepilepsy_medicine": antiepilepsy_medicine, "is_rescue_medicine": antiepilepsy_medicine.is_rescue_medicine, "show_end_date": show_end_date, + "can_change_antiepilepsymedicine": editable and request.user.has_perm("epilepsy12.change_antiepilepsymedicine"), } template_name = "epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html" @@ -869,9 +913,12 @@ def has_rescue_medication_been_prescribed(request, management_id): management=management, is_rescue_medicine=True ).all() + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + context = { "management": management, "rescue_medicines": rescue_medicines, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), } template_name = ( @@ -938,7 +985,12 @@ def individualised_care_plan_in_place(request, management_id): management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -981,7 +1033,12 @@ def individualised_care_plan_date(request, management_id): management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1020,7 +1077,12 @@ def individualised_care_plan_has_parent_carer_child_agreement(request, managemen management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1058,7 +1120,12 @@ def individualised_care_plan_includes_service_contact_details(request, managemen error_message = error management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1095,7 +1162,12 @@ def individualised_care_plan_include_first_aid(request, management_id): error_message = error management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1133,7 +1205,12 @@ def individualised_care_plan_parental_prolonged_seizure_care(request, management error_message = error management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1172,7 +1249,12 @@ def individualised_care_plan_includes_general_participation_risk( error_message = error management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1209,7 +1291,12 @@ def individualised_care_plan_addresses_water_safety(request, management_id): error_message = error management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1246,7 +1333,12 @@ def individualised_care_plan_addresses_sudep(request, management_id): error_message = error management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1283,7 +1375,12 @@ def individualised_care_plan_includes_ehcp(request, management_id): error_message = error management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1321,7 +1418,12 @@ def has_individualised_care_plan_been_updated_in_the_last_year(request, manageme management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/individualised_care_plan.html" @@ -1359,7 +1461,12 @@ def has_been_referred_for_mental_health_support(request, management_id): management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/mental_health_support.html" @@ -1397,7 +1504,12 @@ def has_support_for_mental_health_support(request, management_id): management = Management.objects.get(pk=management_id) - context = {"management": management} + editable = request.user.is_rcpch_audit_team_member or management.registration.case.editable() + + context = { + "management": management, + "can_change_management": editable and request.user.has_perm("epilepsy12.change_management"), + } template_name = "epilepsy12/partials/management/mental_health_support.html" diff --git a/templates/epilepsy12/partials/investigations/ct_head_status.html b/templates/epilepsy12/partials/investigations/ct_head_status.html index f7b43d510..78b7069c0 100644 --- a/templates/epilepsy12/partials/investigations/ct_head_status.html +++ b/templates/epilepsy12/partials/investigations/ct_head_status.html @@ -6,7 +6,7 @@
    {% url 'ct_head_scan_status' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#ct_head_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.ct_head_scan_status tooltip_id='ct_head_scan_status_tooltip' label=investigations.get_ct_head_scan_status_help_label_text reference=investigations.get_ct_head_scan_status_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#ct_head_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.ct_head_scan_status tooltip_id='ct_head_scan_status_tooltip' label=investigations.get_ct_head_scan_status_help_label_text reference=investigations.get_ct_head_scan_status_help_reference_text data_position="top left" enabled=enabled %}
    diff --git a/templates/epilepsy12/partials/investigations/ecg_status.html b/templates/epilepsy12/partials/investigations/ecg_status.html index 0103e82f5..39dee668e 100644 --- a/templates/epilepsy12/partials/investigations/ecg_status.html +++ b/templates/epilepsy12/partials/investigations/ecg_status.html @@ -6,7 +6,7 @@
    {% url 'twelve_lead_ecg_status' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#ecg_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.twelve_lead_ecg_status tooltip_id='ecg_information_tooltip' label=investigations.get_twelve_lead_ecg_status_help_label_text reference=investigations.get_twelve_lead_ecg_status_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#ecg_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.twelve_lead_ecg_status tooltip_id='ecg_information_tooltip' label=investigations.get_twelve_lead_ecg_status_help_label_text reference=investigations.get_twelve_lead_ecg_status_help_reference_text data_position="top left" enabled=enabled %}
    diff --git a/templates/epilepsy12/partials/investigations/eeg_information.html b/templates/epilepsy12/partials/investigations/eeg_information.html index 50c662954..9db83e497 100644 --- a/templates/epilepsy12/partials/investigations/eeg_information.html +++ b/templates/epilepsy12/partials/investigations/eeg_information.html @@ -6,7 +6,7 @@
    {% url 'eeg_indicated' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#eeg_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.eeg_indicated tooltip_id='eeg_indicated_tooltip' label=investigations.get_eeg_indicated_help_label_text reference=investigations.get_eeg_indicated_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#eeg_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.eeg_indicated tooltip_id='eeg_indicated_tooltip' label=investigations.get_eeg_indicated_help_label_text reference=investigations.get_eeg_indicated_help_reference_text data_position="top left" enabled=enabled %}
    @@ -15,7 +15,7 @@
    {% url 'eeg_request_date' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#eeg_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.eeg_request_date label=investigations.get_eeg_request_date_help_label_text reference=investigations.get_eeg_request_date_help_reference_text data_position="top left" input_date_field_name='eeg_request_date' enabled=perms.epilepsy12.change_investigations has_permission=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#eeg_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.eeg_request_date label=investigations.get_eeg_request_date_help_label_text reference=investigations.get_eeg_request_date_help_reference_text data_position="top left" input_date_field_name='eeg_request_date' enabled=enabled has_permission=perms.epilepsy12.change_investigations %} {% if eeg_declined %}
    @@ -48,7 +48,7 @@ {% else %} {% url 'eeg_performed_date' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#eeg_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.eeg_performed_date label=investigations.get_eeg_performed_date_help_label_text reference=investigations.get_eeg_performed_date_help_reference_text data_position="top left" input_date_field_name='eeg_performed_date' enabled=perms.epilepsy12.change_investigations has_permission=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#eeg_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.eeg_performed_date label=investigations.get_eeg_performed_date_help_label_text reference=investigations.get_eeg_performed_date_help_reference_text data_position="top left" input_date_field_name='eeg_performed_date' enabled=enabled has_permission=perms.epilepsy12.change_investigations %} {% if investigations.eeg_request_date and investigations.eeg_performed_date %}
    @@ -67,7 +67,7 @@
    {% url 'eeg_declined' investigations_id=investigations.pk confirm='decline' as hx_post %}
    {% url 'mri_indicated' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#mri_brain_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.mri_indicated tooltip_id='mri_indicated_tooltip' label=investigations.get_mri_indicated_help_label_text reference=investigations.get_mri_indicated_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#mri_brain_information" hx_trigger="click" hx_swap="innerHTML" test_positive=investigations.mri_indicated tooltip_id='mri_indicated_tooltip' label=investigations.get_mri_indicated_help_label_text reference=investigations.get_mri_indicated_help_reference_text data_position="top left" enabled=enabled %}
    @@ -15,7 +15,7 @@
    {% url 'mri_brain_requested_date' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#mri_brain_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.mri_brain_requested_date label=investigations.get_mri_brain_requested_date_help_label_text reference=investigations.get_mri_brain_requested_date_help_reference_text data_position="top left" input_date_field_name='mri_brain_requested_date' error_messages=error_messages enabled=perms.epilepsy12.change_investigations has_permission=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#mri_brain_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.mri_brain_requested_date label=investigations.get_mri_brain_requested_date_help_label_text reference=investigations.get_mri_brain_requested_date_help_reference_text data_position="top left" input_date_field_name='mri_brain_requested_date' error_messages=error_messages enabled=enabled has_permission=perms.epilepsy12.change_investigations %} {% if mri_brain_declined %}
    @@ -48,7 +48,7 @@ {% else %} {% url 'mri_brain_reported_date' investigations_id=investigations.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#mri_brain_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.mri_brain_reported_date label=investigations.get_mri_brain_reported_date_help_label_text reference=investigations.get_mri_brain_reported_date_help_reference_text data_position="top left" input_date_field_name='mri_brain_reported_date' error_messages=error_messages enabled=perms.epilepsy12.change_investigations has_permission=perms.epilepsy12.change_investigations %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#mri_brain_information" hx_trigger="change delay:1s" hx_swap="innerHTML" date_value=investigations.mri_brain_reported_date label=investigations.get_mri_brain_reported_date_help_label_text reference=investigations.get_mri_brain_reported_date_help_reference_text data_position="top left" input_date_field_name='mri_brain_reported_date' error_messages=error_messages enabled=enabled has_permission=perms.epilepsy12.change_investigations %} {% if investigations.mri_brain_requested_date and investigations.mri_brain_reported_date %}
    diff --git a/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html b/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html index 7d2212fcf..2bbf71da6 100644 --- a/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html +++ b/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine.html @@ -16,9 +16,9 @@
    {% url 'antiepilepsy_medicine_start_date' antiepilepsy_medicine_id=antiepilepsy_medicine.pk as hx_post %} {% if is_rescue_medicine %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_start_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_start_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=perms.epilepsy12.change_antiepilepsymedicine has_permission=perms.epilepsy12.change_antiepilepsymedicine tooltip_id="is_rescue_medicine" %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_start_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_start_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=can_change_antiepilepsymedicine has_permission=can_change_antiepilepsymedicine tooltip_id="is_rescue_medicine" %} {% else %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_start_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_start_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=perms.epilepsy12.change_antiepilepsymedicine has_permission=perms.epilepsy12.change_antiepilepsymedicine tooltip_id="is_antiepilepsy_medicine" %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_start_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_start_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_start_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=can_change_antiepilepsymedicine has_permission=can_change_antiepilepsymedicine tooltip_id="is_antiepilepsy_medicine" %} {% endif %}
    @@ -26,9 +26,9 @@
    {% url 'antiepilepsy_medicine_stop_date' antiepilepsy_medicine_id=antiepilepsy_medicine.pk as hx_post %} {% if is_rescue_medicine %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_stop_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_stop_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=perms.epilepsy12.change_antiepilepsymedicine has_permission=perms.epilepsy12.change_antiepilepsymedicine tooltip_id="is_rescue_medicine" %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_stop_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_stop_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=can_change_antiepilepsymedicine has_permission=can_change_antiepilepsymedicine tooltip_id="is_rescue_medicine" %} {% else %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_stop_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_stop_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=perms.epilepsy12.change_antiepilepsymedicine has_permission=perms.epilepsy12.change_antiepilepsymedicine tooltip_id="is_antiepilepsy_medicine" %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='change delay:1s' hx_swap='innerHTML' input_date_field_name='antiepilepsy_medicine_stop_date' date_value=antiepilepsy_medicine.antiepilepsy_medicine_stop_date label=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_stop_date_help_reference_text hx_default_text='enter date' data_position='top left' error_message=error_message enabled=can_change_antiepilepsymedicine has_permission=can_change_antiepilepsymedicine tooltip_id="is_antiepilepsy_medicine" %} {% endif %}
    {% endif %} @@ -103,19 +103,19 @@
    {% if is_rescue_medicine %} {% url 'medicine_id' antiepilepsy_medicine_id=antiepilepsy_medicine.pk medicine_status='rescue' as hx_post %} - {% include 'epilepsy12/partials/page_elements/select_model.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='change' hx_swap='innerHTML' hx_name='rescue_medicine_id' field_name='medicine_name' field_name2='preferredTerm' test_positive=antiepilepsy_medicine.medicine_entity.pk label=antiepilepsy_medicine.get_medicine_entity_help_label_text reference=antiepilepsy_medicine.get_medicine_entity_help_reference_text hx_default_text='Antiseizure medicine' data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/select_model.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='change' hx_swap='innerHTML' hx_name='rescue_medicine_id' field_name='medicine_name' field_name2='preferredTerm' test_positive=antiepilepsy_medicine.medicine_entity.pk label=antiepilepsy_medicine.get_medicine_entity_help_label_text reference=antiepilepsy_medicine.get_medicine_entity_help_reference_text hx_default_text='Antiseizure medicine' data_position='top left' enabled=can_change_antiepilepsymedicine %} {% else %} {% url 'medicine_id' antiepilepsy_medicine_id=antiepilepsy_medicine.pk medicine_status='epilepsy' as hx_post %} - {% include 'epilepsy12/partials/page_elements/select_model.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='change' hx_swap='innerHTML' hx_name='epilepsy_medicine_id' field_name='medicine_name' field_name2='preferredTerm' test_positive=antiepilepsy_medicine.medicine_entity.pk label=antiepilepsy_medicine.get_medicine_entity_help_label_text reference=antiepilepsy_medicine.get_medicine_entity_help_reference_text hx_default_text='Antiseizure medicine' data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/select_model.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='change' hx_swap='innerHTML' hx_name='epilepsy_medicine_id' field_name='medicine_name' field_name2='preferredTerm' test_positive=antiepilepsy_medicine.medicine_entity.pk label=antiepilepsy_medicine.get_medicine_entity_help_label_text reference=antiepilepsy_medicine.get_medicine_entity_help_reference_text hx_default_text='Antiseizure medicine' data_position='top left' enabled=can_change_antiepilepsymedicine %} {% endif %}
    {% url 'antiepilepsy_medicine_risk_discussed' antiepilepsy_medicine_id=antiepilepsy_medicine.pk as hx_post %} {% if is_rescue_medicine %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='antiepilepsy_medicine_risk_discussed' test_positive=antiepilepsy_medicine.antiepilepsy_medicine_risk_discussed tooltip_id='antiepilepsy_medicine_risk_discussed_tooltip' label=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post hx_target='#rescue_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='antiepilepsy_medicine_risk_discussed' test_positive=antiepilepsy_medicine.antiepilepsy_medicine_risk_discussed tooltip_id='antiepilepsy_medicine_risk_discussed_tooltip' label=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_reference_text data_position='top left' enabled=can_change_antiepilepsymedicine %} {% else %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='antiepilepsy_medicine_risk_discussed' test_positive=antiepilepsy_medicine.antiepilepsy_medicine_risk_discussed tooltip_id='antiepilepsy_medicine_risk_discussed_tooltip' label=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post hx_target='#antiepilepsy_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='antiepilepsy_medicine_risk_discussed' test_positive=antiepilepsy_medicine.antiepilepsy_medicine_risk_discussed tooltip_id='antiepilepsy_medicine_risk_discussed_tooltip' label=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_label_text reference=antiepilepsy_medicine.get_antiepilepsy_medicine_risk_discussed_help_reference_text data_position='top left' enabled=can_change_antiepilepsymedicine %} {% endif %}
    @@ -128,20 +128,20 @@
    {% url 'has_a_valproate_annual_risk_acknowledgement_form_been_completed' antiepilepsy_medicine_id=antiepilepsy_medicine.pk as hx_post_acknowledge %} {% if is_rescue_medicine %}
    - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_acknowledge hx_target='#rescue_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='has_a_valproate_annual_risk_acknowledgement_form_been_completed' test_positive=antiepilepsy_medicine.has_a_valproate_annual_risk_acknowledgement_form_been_completed tooltip_id='has_a_valproate_annual_risk_acknowledgement_form_been_completed_tooltip' label=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_label_text reference=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_acknowledge hx_target='#rescue_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='has_a_valproate_annual_risk_acknowledgement_form_been_completed' test_positive=antiepilepsy_medicine.has_a_valproate_annual_risk_acknowledgement_form_been_completed tooltip_id='has_a_valproate_annual_risk_acknowledgement_form_been_completed_tooltip' label=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_label_text reference=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_reference_text data_position='top left' enabled=can_change_antiepilepsymedicine %}
    {% if antiepilepsy_medicine.management.registration.case.sex == 2 %}
    - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_ppp hx_target='#rescue_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='is_a_pregnancy_prevention_programme_in_place' test_positive=antiepilepsy_medicine.is_a_pregnancy_prevention_programme_in_place tooltip_id='is_a_pregnancy_prevention_programme_in_place_tooltip' label=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_label_text reference=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_ppp hx_target='#rescue_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='is_a_pregnancy_prevention_programme_in_place' test_positive=antiepilepsy_medicine.is_a_pregnancy_prevention_programme_in_place tooltip_id='is_a_pregnancy_prevention_programme_in_place_tooltip' label=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_label_text reference=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_reference_text data_position='top left' enabled=can_change_antiepilepsymedicine %}
    {% endif %} {% else %}
    - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_acknowledge hx_target='#antiepilepsy_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='has_a_valproate_annual_risk_acknowledgement_form_been_completed' test_positive=antiepilepsy_medicine.has_a_valproate_annual_risk_acknowledgement_form_been_completed tooltip_id='has_a_valproate_annual_risk_acknowledgement_form_been_completed_tooltip' label=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_label_text reference=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_acknowledge hx_target='#antiepilepsy_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='has_a_valproate_annual_risk_acknowledgement_form_been_completed' test_positive=antiepilepsy_medicine.has_a_valproate_annual_risk_acknowledgement_form_been_completed tooltip_id='has_a_valproate_annual_risk_acknowledgement_form_been_completed_tooltip' label=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_label_text reference=antiepilepsy_medicine.get_has_a_valproate_annual_risk_acknowledgement_form_been_completed_help_reference_text data_position='top left' enabled=can_change_antiepilepsymedicine %}
    {% if antiepilepsy_medicine|show_topiramate_valproate_fields:True %}
    - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_ppp hx_target='#antiepilepsy_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='is_a_pregnancy_prevention_programme_in_place' test_positive=antiepilepsy_medicine.is_a_pregnancy_prevention_programme_in_place tooltip_id='is_a_pregnancy_prevention_programme_in_place_tooltip' label=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_label_text reference=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_antiepilepsymedicine %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with choices=choices hx_post=hx_post_ppp hx_target='#antiepilepsy_medicine_list' hx_trigger='click' hx_swap='innerHTML' hx_name='is_a_pregnancy_prevention_programme_in_place' test_positive=antiepilepsy_medicine.is_a_pregnancy_prevention_programme_in_place tooltip_id='is_a_pregnancy_prevention_programme_in_place_tooltip' label=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_label_text reference=antiepilepsy_medicine.get_is_a_pregnancy_prevention_programme_in_place_help_reference_text data_position='top left' enabled=can_change_antiepilepsymedicine %}
    {% endif %} {% endif %} diff --git a/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine_list.html b/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine_list.html index bec9e5f23..06f76220e 100644 --- a/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine_list.html +++ b/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicine_list.html @@ -43,7 +43,7 @@
    - {% if not perms.epilepsy12.add_antiepilepsymedicine or not perms.epilepsy12.change_antiepilepsymedicine or not perms.epilepsy12.delete_aantiepilepsymedicine %} - {% permission_text perms.epilepsy12.add_antiepilepsymedicine perms.epilepsy12.change_antiepilepsymedicine perms.epilepsy12.delete_antiepilepsymedicine 'antiepilepsy/seizure medicines' %} + {% if not can_add_antiepilepsymedicine or not can_change_antiepilepsymedicine or not can_delete_antiepilepsymedicine %} + {% permission_text can_add_antiepilepsymedicine can_change_antiepilepsymedicine can_delete_antiepilepsymedicine 'antiepilepsy/seizure medicines' %} {% endif %}
    \ No newline at end of file diff --git a/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicines.html b/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicines.html index 64aea3743..649645429 100644 --- a/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicines.html +++ b/templates/epilepsy12/partials/management/antiepilepsy_medicines/antiepilepsy_medicines.html @@ -2,7 +2,7 @@
    {% url 'has_an_aed_been_given' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.has_an_aed_been_given hx_post=hx_post hx_swap="innerHTML" hx_target="#aeds" hx_trigger="click" tooltip_id='has_an_aed_been_given_tooltip' label=management.get_has_an_aed_been_given_help_label_text reference=management.get_has_an_aed_been_given_help_reference_text enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.has_an_aed_been_given hx_post=hx_post hx_swap="innerHTML" hx_target="#aeds" hx_trigger="click" tooltip_id='has_an_aed_been_given_tooltip' label=management.get_has_an_aed_been_given_help_label_text reference=management.get_has_an_aed_been_given_help_reference_text enabled=can_change_management %} {% if management.has_an_aed_been_given %}
    diff --git a/templates/epilepsy12/partials/management/antiepilepsy_medicines/rescue_medicines.html b/templates/epilepsy12/partials/management/antiepilepsy_medicines/rescue_medicines.html index bb8a2f07f..9adbe0f72 100644 --- a/templates/epilepsy12/partials/management/antiepilepsy_medicines/rescue_medicines.html +++ b/templates/epilepsy12/partials/management/antiepilepsy_medicines/rescue_medicines.html @@ -2,7 +2,7 @@
    {% url 'has_rescue_medication_been_prescribed' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.has_rescue_medication_been_prescribed hx_post=hx_post hx_swap="innerHTML" hx_target="#rescue_medicines" hx_trigger="click" tooltip_id='has_rescue_medication_been_prescribed_tooltip' label=management.get_has_rescue_medication_been_prescribed_help_label_text reference=management.get_has_rescue_medication_been_prescribed_help_reference_text enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.has_rescue_medication_been_prescribed hx_post=hx_post hx_swap="innerHTML" hx_target="#rescue_medicines" hx_trigger="click" tooltip_id='has_rescue_medication_been_prescribed_tooltip' label=management.get_has_rescue_medication_been_prescribed_help_label_text reference=management.get_has_rescue_medication_been_prescribed_help_reference_text enabled=can_change_management %} {% if management.has_rescue_medication_been_prescribed %}
    diff --git a/templates/epilepsy12/partials/management/individualised_care_plan.html b/templates/epilepsy12/partials/management/individualised_care_plan.html index 20700b141..5bd0052c1 100644 --- a/templates/epilepsy12/partials/management/individualised_care_plan.html +++ b/templates/epilepsy12/partials/management/individualised_care_plan.html @@ -3,7 +3,7 @@
    {% url 'individualised_care_plan_in_place' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#individualised_care_plan" test_positive=management.individualised_care_plan_in_place hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_in_place_tooltip' label=management.get_individualised_care_plan_in_place_help_label_text reference=management.get_individualised_care_plan_in_place_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target="#individualised_care_plan" test_positive=management.individualised_care_plan_in_place hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_in_place_tooltip' label=management.get_individualised_care_plan_in_place_help_label_text reference=management.get_individualised_care_plan_in_place_help_reference_text data_position="top left" enabled=can_change_management %}
    @@ -11,7 +11,7 @@
    {% url 'individualised_care_plan_date' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="change delay:1s" date_value=management.individualised_care_plan_date input_date_field_name='individualised_care_plan_date' label=management.get_individualised_care_plan_date_help_label_text reference=management.get_individualised_care_plan_date_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management error_message=error_message has_permission=perms.epilepsy12.change_management enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/date_field.html' with hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="change delay:1s" date_value=management.individualised_care_plan_date input_date_field_name='individualised_care_plan_date' label=management.get_individualised_care_plan_date_help_label_text reference=management.get_individualised_care_plan_date_help_reference_text data_position="top left" enabled=can_change_management error_message=error_message has_permission=perms.epilepsy12.change_management enabled=can_change_management %}
    {% if error_message %}
    @@ -25,12 +25,12 @@
    Does ongoing individualised care planning include:
    {% url 'individualised_care_plan_has_parent_carer_child_agreement' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_has_parent_carer_child_agreement hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_has_parent_carer_child_agreement_tooltip' label=management.get_individualised_care_plan_has_parent_carer_child_agreement_help_label_text reference=management.get_individualised_care_plan_has_parent_carer_child_agreement_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_has_parent_carer_child_agreement hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_has_parent_carer_child_agreement_tooltip' label=management.get_individualised_care_plan_has_parent_carer_child_agreement_help_label_text reference=management.get_individualised_care_plan_has_parent_carer_child_agreement_help_reference_text data_position="top left" enabled=can_change_management %}
    {% url 'individualised_care_plan_includes_service_contact_details' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_includes_service_contact_details hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_includes_service_contact_details_tooltip' label=management.get_individualised_care_plan_includes_service_contact_details_help_label_text reference=management.get_individualised_care_plan_includes_service_contact_details_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_includes_service_contact_details hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_includes_service_contact_details_tooltip' label=management.get_individualised_care_plan_includes_service_contact_details_help_label_text reference=management.get_individualised_care_plan_includes_service_contact_details_help_reference_text data_position="top left" enabled=can_change_management %}
    @@ -40,12 +40,12 @@
    Does ongoing individualised care planning include:
    {% url 'individualised_care_plan_include_first_aid' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_include_first_aid hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_include_first_aid_tooltip' label=management.get_individualised_care_plan_include_first_aid_help_label_text reference=management.get_individualised_care_plan_include_first_aid_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_include_first_aid hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_include_first_aid_tooltip' label=management.get_individualised_care_plan_include_first_aid_help_label_text reference=management.get_individualised_care_plan_include_first_aid_help_reference_text data_position="top left" enabled=can_change_management %}
    {% url 'individualised_care_plan_parental_prolonged_seizure_care' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_parental_prolonged_seizure_care hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_parental_prolonged_seizure_care_tooltip' label=management.get_individualised_care_plan_parental_prolonged_seizure_care_help_label_text reference=management.get_individualised_care_plan_parental_prolonged_seizure_care_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_parental_prolonged_seizure_care hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_parental_prolonged_seizure_care_tooltip' label=management.get_individualised_care_plan_parental_prolonged_seizure_care_help_label_text reference=management.get_individualised_care_plan_parental_prolonged_seizure_care_help_reference_text data_position="top left" enabled=can_change_management %}
    @@ -55,12 +55,12 @@
    Does ongoing individualised care planning include:
    {% url 'individualised_care_plan_includes_general_participation_risk' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_includes_general_participation_risk hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_includes_general_participation_risk_tooltip' label=management.get_individualised_care_plan_includes_general_participation_risk_help_label_text reference=management.get_individualised_care_plan_includes_general_participation_risk_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_includes_general_participation_risk hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_includes_general_participation_risk_tooltip' label=management.get_individualised_care_plan_includes_general_participation_risk_help_label_text reference=management.get_individualised_care_plan_includes_general_participation_risk_help_reference_text data_position="top left" enabled=can_change_management %}
    {% url 'individualised_care_plan_addresses_water_safety' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_addresses_water_safety hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_addresses_water_safety_tooltip' label=management.get_individualised_care_plan_addresses_water_safety_help_label_text reference=management.get_individualised_care_plan_addresses_water_safety_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_addresses_water_safety hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_addresses_water_safety_tooltip' label=management.get_individualised_care_plan_addresses_water_safety_help_label_text reference=management.get_individualised_care_plan_addresses_water_safety_help_reference_text data_position="top left" enabled=can_change_management %}
    @@ -70,19 +70,19 @@
    Does ongoing individualised care planning include:
    {% url 'individualised_care_plan_addresses_sudep' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_addresses_sudep hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_addresses_sudep_tooltip' label=management.get_individualised_care_plan_addresses_sudep_help_label_text reference=management.get_individualised_care_plan_addresses_sudep_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_addresses_sudep hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_addresses_sudep_tooltip' label=management.get_individualised_care_plan_addresses_sudep_help_label_text reference=management.get_individualised_care_plan_addresses_sudep_help_reference_text data_position="top left" enabled=can_change_management %}
    {% url 'individualised_care_plan_includes_ehcp' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_includes_ehcp hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_includes_ehcp_tooltip' label=management.get_individualised_care_plan_includes_ehcp_help_label_text reference=management.get_individualised_care_plan_includes_ehcp_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.individualised_care_plan_includes_ehcp hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='individualised_care_plan_includes_ehcp_tooltip' label=management.get_individualised_care_plan_includes_ehcp_help_label_text reference=management.get_individualised_care_plan_includes_ehcp_help_reference_text data_position="top left" enabled=can_change_management %}
    {% url 'has_individualised_care_plan_been_updated_in_the_last_year' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.has_individualised_care_plan_been_updated_in_the_last_year hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='has_individualised_care_plan_been_updated_in_the_last_year_tooltip' label=management.get_has_individualised_care_plan_been_updated_in_the_last_year_help_label_text reference=management.get_has_individualised_care_plan_been_updated_in_the_last_year_help_reference_text data_position="top left" enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with test_positive=management.has_individualised_care_plan_been_updated_in_the_last_year hx_post=hx_post hx_target="#individualised_care_plan" hx_swap="innerHTML" hx_trigger="click" tooltip_id='has_individualised_care_plan_been_updated_in_the_last_year_tooltip' label=management.get_has_individualised_care_plan_been_updated_in_the_last_year_help_label_text reference=management.get_has_individualised_care_plan_been_updated_in_the_last_year_help_reference_text data_position="top left" enabled=can_change_management %}
    diff --git a/templates/epilepsy12/partials/management/mental_health_support.html b/templates/epilepsy12/partials/management/mental_health_support.html index 00a955c96..77a798bdc 100644 --- a/templates/epilepsy12/partials/management/mental_health_support.html +++ b/templates/epilepsy12/partials/management/mental_health_support.html @@ -2,12 +2,12 @@
    {% url 'has_been_referred_for_mental_health_support' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_support' hx_trigger='click' hx_swap='innerHTML' test_positive=management.has_been_referred_for_mental_health_support tooltip_id='has_been_referred_for_mental_health_support_tooltip' label=management.get_has_been_referred_for_mental_health_support_help_label_text reference=management.get_has_been_referred_for_mental_health_support_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_support' hx_trigger='click' hx_swap='innerHTML' test_positive=management.has_been_referred_for_mental_health_support tooltip_id='has_been_referred_for_mental_health_support_tooltip' label=management.get_has_been_referred_for_mental_health_support_help_label_text reference=management.get_has_been_referred_for_mental_health_support_help_reference_text data_position='top left' enabled=can_change_management %}
    {% url 'has_support_for_mental_health_support' management_id=management.pk as hx_post %} - {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_support' hx_trigger='click' hx_swap='innerHTML' test_positive=management.has_support_for_mental_health_support tooltip_id='has_support_for_mental_health_support_tooltip' label=management.get_has_support_for_mental_health_support_help_label_text reference=management.get_has_support_for_mental_health_support_help_reference_text data_position='top left' enabled=perms.epilepsy12.change_management %} + {% include 'epilepsy12/partials/page_elements/toggle_button.html' with hx_post=hx_post hx_target='#mental_health_support' hx_trigger='click' hx_swap='innerHTML' test_positive=management.has_support_for_mental_health_support tooltip_id='has_support_for_mental_health_support_tooltip' label=management.get_has_support_for_mental_health_support_help_label_text reference=management.get_has_support_for_mental_health_support_help_reference_text data_position='top left' enabled=can_change_management %}
    From 65fd7c1f79e0532491e257d54277b429c941741a Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 18:02:59 +0000 Subject: [PATCH 12/19] Helper --- epilepsy12/decorator.py | 94 ++++++++++++++++++++++++++++ epilepsy12/views/assessment_views.py | 16 ++--- 2 files changed, 102 insertions(+), 8 deletions(-) diff --git a/epilepsy12/decorator.py b/epilepsy12/decorator.py index dcef50cd3..3dbc4a3a3 100644 --- a/epilepsy12/decorator.py +++ b/epilepsy12/decorator.py @@ -225,6 +225,7 @@ def wrapper(request, *args, **kwargs): return decorator +# TODO MRB: replace with new_one def user_may_view_this_child(): # decorator receives case_id or registration_id from view as argument. # access is granted only to users who are either: @@ -319,6 +320,99 @@ def wrapper(request, *args, **kwargs): return decorator +def user_may_view_this_child_2(): + # Lookup sub object by id and walk backwards to case. + # Access is granted only to users who are either: + # 1. superusers + # 2. Active RCPCH audit members + # 3. Active trust level users where their trust is the same as the child + # Editing is allowed if the cohort is still open or if you are an RCPCH audit member + def decorator(view): + def wrapper(request, *args, **kwargs): + user = request.user + if (user.is_active and user.email_confirmed) or user.is_superuser: + # user is registered and active or a superuser + if kwargs.get("registration_id") is not None: + registration = Registration.objects.get( + pk=kwargs.get("registration_id") + ) + child = registration.case + elif kwargs.get("management_id") is not None: + management = Management.objects.get(pk=kwargs.get("management_id")) + child = management.registration.case + elif kwargs.get("investigations_id") is not None: + investigations = Investigations.objects.get( + pk=kwargs.get("investigations_id") + ) + child = investigations.registration.case + elif kwargs.get("first_paediatric_assessment_id") is not None: + first_paediatric_assessment = FirstPaediatricAssessment.objects.get( + pk=kwargs.get("first_paediatric_assessment_id") + ) + child = first_paediatric_assessment.registration.case + elif kwargs.get("epilepsy_context_id") is not None: + epilepsy_context = EpilepsyContext.objects.get( + pk=kwargs.get("epilepsy_context_id") + ) + child = epilepsy_context.registration.case + elif kwargs.get("multiaxial_diagnosis_id") is not None: + multiaxial_diagnosis = MultiaxialDiagnosis.objects.get( + pk=kwargs.get("multiaxial_diagnosis_id") + ) + child = multiaxial_diagnosis.registration.case + elif kwargs.get("episode_id") is not None: + episode = Episode.objects.get(pk=kwargs.get("episode_id")) + child = episode.multiaxial_diagnosis.registration.case + elif kwargs.get("syndrome_id") is not None: + syndrome = Syndrome.objects.get(pk=kwargs.get("syndrome_id")) + child = syndrome.multiaxial_diagnosis.registration.case + elif kwargs.get("comorbidity_id") is not None: + comorbidity = Comorbidity.objects.get( + pk=kwargs.get("comorbidity_id") + ) + child = comorbidity.multiaxial_diagnosis.registration.case + elif kwargs.get("antiepilepsy_medicine_id") is not None: + antiepilepsy_medicine = AntiEpilepsyMedicine.objects.get( + pk=kwargs.get("antiepilepsy_medicine_id") + ) + child = antiepilepsy_medicine.management.registration.case + elif kwargs.get("assessment_id") is not None: + assessment = Assessment.objects.get(pk=kwargs.get("assessment_id")) + child = assessment.registration.case + elif kwargs.get("case_id") is not None: + case = Case.objects.get(pk=kwargs.get("case_id")) + child = case + + if user.is_rcpch_audit_team_member: + organisation = Organisation.objects.filter( + cases=child, + patient_sites__site_is_actively_involved_in_epilepsy_care=True, + patient_sites__site_is_primary_centre_of_epilepsy_care=True, + ) + else: + # filter for object where trust (not just organisation) where case is registered is the same as that of user + organisation = Organisation.objects.filter( + cases=child, + patient_sites__site_is_actively_involved_in_epilepsy_care=True, + patient_sites__site_is_primary_centre_of_epilepsy_care=True, + trust=request.user.organisation_employer.trust, + ) + + is_admin = user.is_rcpch_audit_team_member or user.is_rcpch_staff or user.is_superuser + + if is_admin or organisation.exists(): + editable = is_admin or child.editable() + return view(request, editable, *args, **kwargs) + else: + raise PermissionDenied() + else: + raise PermissionDenied() + + return wrapper + + return decorator + + def rcpch_full_access_only(): """ Only permits access to rcpch_audit_team_full_access group members diff --git a/epilepsy12/views/assessment_views.py b/epilepsy12/views/assessment_views.py index a2204d580..97b3d39ac 100644 --- a/epilepsy12/views/assessment_views.py +++ b/epilepsy12/views/assessment_views.py @@ -6,7 +6,7 @@ validate_and_update_model, recalculate_form_generate_response, ) -from ..decorator import user_may_view_this_child, login_and_otp_required +from ..decorator import user_may_view_this_child, user_may_view_this_child_2, login_and_otp_required def update_site_model( @@ -1102,8 +1102,8 @@ def delete_paediatric_neurology_centre(request, assessment_id, site_id): @login_and_otp_required() @permission_required("epilepsy12.change_assessment", raise_exception=True) -@user_may_view_this_child() -def childrens_epilepsy_surgical_service_referral_criteria_met(request, assessment_id): +@user_may_view_this_child_2() +def childrens_epilepsy_surgical_service_referral_criteria_met(request, editable, assessment_id): """ This is an HTMX callback from the epilepsy_surgery partial template It is triggered by a toggle in the partial generating a post request @@ -1129,8 +1129,8 @@ def childrens_epilepsy_surgical_service_referral_criteria_met(request, assessmen context = { "assessment": assessment, "organisation_list": organisation_list, - "show_input_date": assessment.childrens_epilepsy_surgical_service_input_date - is not None, + "show_input_date": assessment.childrens_epilepsy_surgical_service_input_date is not None, + "enabled": editable, } template_name = "epilepsy12/partials/assessment/epilepsy_surgery.html" @@ -1819,8 +1819,8 @@ def epilepsy_specialist_nurse_input_date(request, assessment_id): @login_and_otp_required() @permission_required("epilepsy12.view_assessment", raise_exception=True) -@user_may_view_this_child() -def assessment(request, case_id): +@user_may_view_this_child_2() +def assessment(request, editable, case_id): case = Case.objects.get(pk=case_id) registration = Registration.objects.filter(case=case).get() @@ -1850,7 +1850,7 @@ def assessment(request, case_id): "organisation_list": organisation_list, "organisation_id": organisation_id, "show_input_date": assessment.childrens_epilepsy_surgical_service_input_date is not None, - "enabled": request.user.is_rcpch_audit_team_member or (registration.case.editable() and request.user.has_perm("epilepsy12.change_assessment")), + "enabled": editable and request.user.has_perm("epilepsy12.change_assessment"), } # add previous and current sites to context From a112e2489f28a1a165cf02eccf17321bfce05b6e Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 18:06:45 +0000 Subject: [PATCH 13/19] Deny writes in helper for safety --- epilepsy12/decorator.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/epilepsy12/decorator.py b/epilepsy12/decorator.py index 3dbc4a3a3..3d47a53a0 100644 --- a/epilepsy12/decorator.py +++ b/epilepsy12/decorator.py @@ -402,6 +402,10 @@ def wrapper(request, *args, **kwargs): if is_admin or organisation.exists(): editable = is_admin or child.editable() + + if not editable and request.method != "GET": + raise PermissionDenied() + return view(request, editable, *args, **kwargs) else: raise PermissionDenied() From dbc93d28f8115478c9f0428b88bb1dd83158829e Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 18:36:37 +0000 Subject: [PATCH 14/19] Rework into two helpers and adopt in fpa --- epilepsy12/decorator.py | 160 +++++++++--------- .../first_paediatric_assessment_views.py | 26 +-- 2 files changed, 98 insertions(+), 88 deletions(-) diff --git a/epilepsy12/decorator.py b/epilepsy12/decorator.py index 3d47a53a0..6838c1118 100644 --- a/epilepsy12/decorator.py +++ b/epilepsy12/decorator.py @@ -320,97 +320,101 @@ def wrapper(request, *args, **kwargs): return decorator -def user_may_view_this_child_2(): +def lookup_child_if_user_has_permission(request_kwargs, user): + lookup = { + "registration_id": Registration, + "management_id": Management, + "investigations_id": Investigations, + "first_paediatric_assessment_id": FirstPaediatricAssessment, + "epilepsy_context_id": EpilepsyContext, + "multiaxial_diagnosis_id": MultiaxialDiagnosis, + "episode_id": Episode, + "syndrome_id": Syndrome, + "comorbidity_id": Comorbidity, + "antiepilepsy_medicine_id": AntiEpilepsyMedicine, + "assessment_id": Assessment, + "case_id": Case, + } + + for key, model in lookup.items(): + pk = request_kwargs.get(key) + + if pk is not None: + obj = model.objects.get(pk=pk) + + if model == Registration: + child = obj.case + elif model == Case: + child = obj + else: + child = obj.registration.case + + org_filters = { + "cases": child, + "patient_sites__site_is_actively_involved_in_epilepsy_care": True, + "patient_sites__site_is_primary_centre_of_epilepsy_care": True, + # Access is sliced by trust - so members of other organisations in that trust can see data + "trust": user.organisation_employer.trust, + } + + if Organisation.objects.filter(**org_filters).exists(): + return child + + +def lookup_user_permissions_on_child(request, request_kwargs): # Lookup sub object by id and walk backwards to case. # Access is granted only to users who are either: # 1. superusers # 2. Active RCPCH audit members # 3. Active trust level users where their trust is the same as the child # Editing is allowed if the cohort is still open or if you are an RCPCH audit member + user = request.user + is_admin = user.is_rcpch_audit_team_member or user.is_rcpch_staff or user.is_superuser + + if is_admin: + return { + "can_view": True, + "can_edit": True, + } + + child = lookup_child_if_user_has_permission(request_kwargs, request.user) + + if child: + return { + "can_view": True, + "can_edit": child.editable(), + } + + return { + "can_view": False, + "can_edit": False, + } + + +def user_may_view_this_child_2(): def decorator(view): def wrapper(request, *args, **kwargs): - user = request.user - if (user.is_active and user.email_confirmed) or user.is_superuser: - # user is registered and active or a superuser - if kwargs.get("registration_id") is not None: - registration = Registration.objects.get( - pk=kwargs.get("registration_id") - ) - child = registration.case - elif kwargs.get("management_id") is not None: - management = Management.objects.get(pk=kwargs.get("management_id")) - child = management.registration.case - elif kwargs.get("investigations_id") is not None: - investigations = Investigations.objects.get( - pk=kwargs.get("investigations_id") - ) - child = investigations.registration.case - elif kwargs.get("first_paediatric_assessment_id") is not None: - first_paediatric_assessment = FirstPaediatricAssessment.objects.get( - pk=kwargs.get("first_paediatric_assessment_id") - ) - child = first_paediatric_assessment.registration.case - elif kwargs.get("epilepsy_context_id") is not None: - epilepsy_context = EpilepsyContext.objects.get( - pk=kwargs.get("epilepsy_context_id") - ) - child = epilepsy_context.registration.case - elif kwargs.get("multiaxial_diagnosis_id") is not None: - multiaxial_diagnosis = MultiaxialDiagnosis.objects.get( - pk=kwargs.get("multiaxial_diagnosis_id") - ) - child = multiaxial_diagnosis.registration.case - elif kwargs.get("episode_id") is not None: - episode = Episode.objects.get(pk=kwargs.get("episode_id")) - child = episode.multiaxial_diagnosis.registration.case - elif kwargs.get("syndrome_id") is not None: - syndrome = Syndrome.objects.get(pk=kwargs.get("syndrome_id")) - child = syndrome.multiaxial_diagnosis.registration.case - elif kwargs.get("comorbidity_id") is not None: - comorbidity = Comorbidity.objects.get( - pk=kwargs.get("comorbidity_id") - ) - child = comorbidity.multiaxial_diagnosis.registration.case - elif kwargs.get("antiepilepsy_medicine_id") is not None: - antiepilepsy_medicine = AntiEpilepsyMedicine.objects.get( - pk=kwargs.get("antiepilepsy_medicine_id") - ) - child = antiepilepsy_medicine.management.registration.case - elif kwargs.get("assessment_id") is not None: - assessment = Assessment.objects.get(pk=kwargs.get("assessment_id")) - child = assessment.registration.case - elif kwargs.get("case_id") is not None: - case = Case.objects.get(pk=kwargs.get("case_id")) - child = case + permissions = lookup_user_permissions_on_child(request, kwargs) - if user.is_rcpch_audit_team_member: - organisation = Organisation.objects.filter( - cases=child, - patient_sites__site_is_actively_involved_in_epilepsy_care=True, - patient_sites__site_is_primary_centre_of_epilepsy_care=True, - ) - else: - # filter for object where trust (not just organisation) where case is registered is the same as that of user - organisation = Organisation.objects.filter( - cases=child, - patient_sites__site_is_actively_involved_in_epilepsy_care=True, - patient_sites__site_is_primary_centre_of_epilepsy_care=True, - trust=request.user.organisation_employer.trust, - ) + if permissions["can_view"]: + return view(request, permissions["can_edit"], *args, **kwargs) + + raise PermissionDenied() - is_admin = user.is_rcpch_audit_team_member or user.is_rcpch_staff or user.is_superuser + return wrapper - if is_admin or organisation.exists(): - editable = is_admin or child.editable() + return decorator - if not editable and request.method != "GET": - raise PermissionDenied() - return view(request, editable, *args, **kwargs) - else: - raise PermissionDenied() - else: - raise PermissionDenied() +def user_may_edit_this_child(): + def decorator(view): + def wrapper(request, *args, **kwargs): + permissions = lookup_user_permissions_on_child(request) + + if permissions["can_edit"]: + return view(request, *args, **kwargs) + + raise PermissionDenied() return wrapper diff --git a/epilepsy12/views/first_paediatric_assessment_views.py b/epilepsy12/views/first_paediatric_assessment_views.py index 8c71b963a..e84423f6f 100644 --- a/epilepsy12/views/first_paediatric_assessment_views.py +++ b/epilepsy12/views/first_paediatric_assessment_views.py @@ -7,13 +7,13 @@ recalculate_form_generate_response, ) from ..models import Registration, FirstPaediatricAssessment, Site -from ..decorator import user_may_view_this_child, login_and_otp_required +from ..decorator import user_may_view_this_child_2, user_may_edit_this_child, login_and_otp_required @login_and_otp_required() @permission_required("epilepsy12.view_firstpaediatricassessment", raise_exception=True) -@user_may_view_this_child() -def first_paediatric_assessment(request, case_id) -> HttpResponse: +@user_may_view_this_child_2() +def first_paediatric_assessment(request, editable, case_id) -> HttpResponse: registration = Registration.objects.get(case=case_id) if FirstPaediatricAssessment.objects.filter(registration=registration).exists(): @@ -38,7 +38,7 @@ def first_paediatric_assessment(request, case_id) -> HttpResponse: context = { "case_id": case_id, - "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.editable() and request.user.has_perm("change_firstpaediatricassessment")), + "enabled": editable and request.user.has_perm("change_firstpaediatricassessment"), "registration": registration, "first_paediatric_assessment": first_paediatric_assessment, "chronicity_selection": CHRONICITY, @@ -60,7 +60,7 @@ def first_paediatric_assessment(request, case_id) -> HttpResponse: @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required( "epilepsy12.change_firstpaediatricassessment", raise_exception=True ) @@ -93,6 +93,7 @@ def first_paediatric_assessment_in_acute_or_nonacute_setting( context = { "chronicity_selection": CHRONICITY, "first_paediatric_assessment": first_paediatric_assessment, + "enabled": True, } response = recalculate_form_generate_response( @@ -107,7 +108,7 @@ def first_paediatric_assessment_in_acute_or_nonacute_setting( @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required( "epilepsy12.change_firstpaediatricassessment", raise_exception=True ) @@ -138,6 +139,7 @@ def has_number_of_episodes_since_the_first_been_documented( context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, + "enabled": True, } response = recalculate_form_generate_response( @@ -152,7 +154,7 @@ def has_number_of_episodes_since_the_first_been_documented( @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required( "epilepsy12.change_firstpaediatricassessment", raise_exception=True ) @@ -180,6 +182,7 @@ def general_examination_performed(request, first_paediatric_assessment_id): context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, + "enabled": True, } response = recalculate_form_generate_response( @@ -194,7 +197,7 @@ def general_examination_performed(request, first_paediatric_assessment_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required( "epilepsy12.change_firstpaediatricassessment", raise_exception=True ) @@ -222,6 +225,7 @@ def neurological_examination_performed(request, first_paediatric_assessment_id): context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, + "enabled": True, } response = recalculate_form_generate_response( @@ -236,7 +240,7 @@ def neurological_examination_performed(request, first_paediatric_assessment_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required( "epilepsy12.change_firstpaediatricassessment", raise_exception=True ) @@ -266,6 +270,7 @@ def developmental_learning_or_schooling_problems( context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, + "enabled": True, } response = recalculate_form_generate_response( @@ -280,7 +285,7 @@ def developmental_learning_or_schooling_problems( @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required( "epilepsy12.change_firstpaediatricassessment", raise_exception=True ) @@ -308,6 +313,7 @@ def behavioural_or_emotional_problems(request, first_paediatric_assessment_id): context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, + "enabled": True, } response = recalculate_form_generate_response( From 867ac391c8be29ca441d92926679125bc258cd26 Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 18:43:10 +0000 Subject: [PATCH 15/19] Adopt new helper in epilepsy context --- epilepsy12/decorator.py | 2 +- epilepsy12/views/epilepsy_context_views.py | 36 ++++++++++++++-------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/epilepsy12/decorator.py b/epilepsy12/decorator.py index 6838c1118..7854ba111 100644 --- a/epilepsy12/decorator.py +++ b/epilepsy12/decorator.py @@ -409,7 +409,7 @@ def wrapper(request, *args, **kwargs): def user_may_edit_this_child(): def decorator(view): def wrapper(request, *args, **kwargs): - permissions = lookup_user_permissions_on_child(request) + permissions = lookup_user_permissions_on_child(request, kwargs) if permissions["can_edit"]: return view(request, *args, **kwargs) diff --git a/epilepsy12/views/epilepsy_context_views.py b/epilepsy12/views/epilepsy_context_views.py index fe4fb26c8..9f0f6f51a 100644 --- a/epilepsy12/views/epilepsy_context_views.py +++ b/epilepsy12/views/epilepsy_context_views.py @@ -1,5 +1,5 @@ from django.contrib.auth.decorators import permission_required -from ..decorator import user_may_view_this_child, login_and_otp_required +from ..decorator import user_may_view_this_child_2, user_may_edit_this_child, login_and_otp_required from epilepsy12.constants.common import OPT_OUT_UNCERTAIN from ..models import EpilepsyContext, Registration, Site from ..common_view_functions import ( @@ -9,9 +9,9 @@ @login_and_otp_required() -@user_may_view_this_child() +@user_may_view_this_child_2() @permission_required("epilepsy12.view_epilepsycontext", raise_exception=True) -def epilepsy_context(request, case_id): +def epilepsy_context(request, editable, case_id): registration = Registration.objects.filter(case=case_id).first() epilepsy_context, created = EpilepsyContext.objects.get_or_create( @@ -27,7 +27,7 @@ def epilepsy_context(request, case_id): context = { "case_id": case_id, - "enabled": request.user.is_rcpch_audit_team_member or (not registration.case.editable() and request.user.has_perm("change_epilepsycontext")), + "enabled": editable and request.user.has_perm("change_epilepsycontext"), "registration": registration, "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, @@ -47,7 +47,7 @@ def epilepsy_context(request, case_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def previous_febrile_seizure(request, epilepsy_context_id): """ @@ -74,6 +74,7 @@ def previous_febrile_seizure(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, + "enabled": True, } response = recalculate_form_generate_response( @@ -88,7 +89,7 @@ def previous_febrile_seizure(request, epilepsy_context_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def previous_acute_symptomatic_seizure(request, epilepsy_context_id): """ @@ -115,6 +116,7 @@ def previous_acute_symptomatic_seizure(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, + "enabled": True, } response = recalculate_form_generate_response( @@ -129,7 +131,7 @@ def previous_acute_symptomatic_seizure(request, epilepsy_context_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def is_there_a_family_history_of_epilepsy(request, epilepsy_context_id): """ @@ -156,6 +158,7 @@ def is_there_a_family_history_of_epilepsy(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, + "enabled": True, } response = recalculate_form_generate_response( @@ -170,7 +173,7 @@ def is_there_a_family_history_of_epilepsy(request, epilepsy_context_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def previous_neonatal_seizures(request, epilepsy_context_id): """ @@ -197,6 +200,7 @@ def previous_neonatal_seizures(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, + "enabled": True, } response = recalculate_form_generate_response( @@ -211,7 +215,7 @@ def previous_neonatal_seizures(request, epilepsy_context_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def were_any_of_the_epileptic_seizures_convulsive(request, epilepsy_context_id): """ @@ -237,6 +241,7 @@ def were_any_of_the_epileptic_seizures_convulsive(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, + "enabled": True, } response = recalculate_form_generate_response( @@ -251,7 +256,7 @@ def were_any_of_the_epileptic_seizures_convulsive(request, epilepsy_context_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def experienced_prolonged_generalized_convulsive_seizures(request, epilepsy_context_id): """ @@ -278,6 +283,7 @@ def experienced_prolonged_generalized_convulsive_seizures(request, epilepsy_cont context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, + "enabled": True, } response = recalculate_form_generate_response( @@ -292,7 +298,7 @@ def experienced_prolonged_generalized_convulsive_seizures(request, epilepsy_cont @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def experienced_prolonged_focal_seizures(request, epilepsy_context_id): """ @@ -319,6 +325,7 @@ def experienced_prolonged_focal_seizures(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, + "enabled": True, } response = recalculate_form_generate_response( @@ -333,7 +340,7 @@ def experienced_prolonged_focal_seizures(request, epilepsy_context_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_epilepsycontext", raise_exception=True) def diagnosis_of_epilepsy_withdrawn(request, epilepsy_context_id): """ @@ -357,7 +364,10 @@ def diagnosis_of_epilepsy_withdrawn(request, epilepsy_context_id): epilepsy_context = EpilepsyContext.objects.get(pk=epilepsy_context_id) - context = {"epilepsy_context": epilepsy_context} + context = { + "epilepsy_context": epilepsy_context, + "enabled": True, + } response = recalculate_form_generate_response( model_instance=epilepsy_context, From 3f41f1837ae39289af52cd415401826018c24271 Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 20:16:16 +0000 Subject: [PATCH 16/19] Fix tests --- .../permissions_tests/test_permissions_update.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/epilepsy12/tests/view_tests/permissions_tests/test_permissions_update.py b/epilepsy12/tests/view_tests/permissions_tests/test_permissions_update.py index 3f577ad5e..f46875271 100644 --- a/epilepsy12/tests/view_tests/permissions_tests/test_permissions_update.py +++ b/epilepsy12/tests/view_tests/permissions_tests/test_permissions_update.py @@ -879,6 +879,11 @@ def test_users_update_first_paediatric_assessment_success(client): first_name=f"child_{TEST_USER_ORGANISATION.name}" ) + # https://github.com/rcpch/rcpch-audit-engine/pull/1346 + # Case must be registered to an open cohort + CASE_FROM_SAME_ORG.registration.first_paediatric_assessment_date = date.today() + CASE_FROM_SAME_ORG.registration.save() + user_first_names_for_test = [ test_user_audit_centre_clinician_data.role_str, test_user_audit_centre_lead_clinician_data.role_str, @@ -1030,6 +1035,11 @@ def test_users_update_epilepsy_context_success(client): first_name=f"child_{TEST_USER_ORGANISATION.name}" ) + # https://github.com/rcpch/rcpch-audit-engine/pull/1346 + # Case must be registered to an open cohort + CASE_FROM_SAME_ORG.registration.first_paediatric_assessment_date = date.today() + CASE_FROM_SAME_ORG.registration.save() + user_first_names_for_test = [ test_user_audit_centre_clinician_data.role_str, test_user_audit_centre_lead_clinician_data.role_str, From 6b05251d31f56dfa3428064045bd9edc577aa7d5 Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 20:25:27 +0000 Subject: [PATCH 17/19] Less code by inverting enabled to disabled --- .../views/first_paediatric_assessment_views.py | 8 +------- templates/epilepsy12/cases/unknown_postcode.html | 4 ++-- .../single_choice_multiple_toggle_button.html | 12 ++++++------ .../partials/page_elements/toggle_button.html | 16 ++++++++-------- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/epilepsy12/views/first_paediatric_assessment_views.py b/epilepsy12/views/first_paediatric_assessment_views.py index e84423f6f..46b03a663 100644 --- a/epilepsy12/views/first_paediatric_assessment_views.py +++ b/epilepsy12/views/first_paediatric_assessment_views.py @@ -38,7 +38,7 @@ def first_paediatric_assessment(request, editable, case_id) -> HttpResponse: context = { "case_id": case_id, - "enabled": editable and request.user.has_perm("change_firstpaediatricassessment"), + "disabled": not editable or not request.user.has_perm("change_firstpaediatricassessment"), "registration": registration, "first_paediatric_assessment": first_paediatric_assessment, "chronicity_selection": CHRONICITY, @@ -93,7 +93,6 @@ def first_paediatric_assessment_in_acute_or_nonacute_setting( context = { "chronicity_selection": CHRONICITY, "first_paediatric_assessment": first_paediatric_assessment, - "enabled": True, } response = recalculate_form_generate_response( @@ -139,7 +138,6 @@ def has_number_of_episodes_since_the_first_been_documented( context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, - "enabled": True, } response = recalculate_form_generate_response( @@ -182,7 +180,6 @@ def general_examination_performed(request, first_paediatric_assessment_id): context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, - "enabled": True, } response = recalculate_form_generate_response( @@ -225,7 +222,6 @@ def neurological_examination_performed(request, first_paediatric_assessment_id): context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, - "enabled": True, } response = recalculate_form_generate_response( @@ -270,7 +266,6 @@ def developmental_learning_or_schooling_problems( context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, - "enabled": True, } response = recalculate_form_generate_response( @@ -313,7 +308,6 @@ def behavioural_or_emotional_problems(request, first_paediatric_assessment_id): context = { "first_paediatric_assessment": first_paediatric_assessment, "diagnostic_status_selection": DIAGNOSTIC_STATUS, - "enabled": True, } response = recalculate_form_generate_response( diff --git a/templates/epilepsy12/cases/unknown_postcode.html b/templates/epilepsy12/cases/unknown_postcode.html index f66962a49..b442002c6 100644 --- a/templates/epilepsy12/cases/unknown_postcode.html +++ b/templates/epilepsy12/cases/unknown_postcode.html @@ -1,8 +1,8 @@ {% url 'unknown_postcode' organisation_id=organisation_id as hx_post %} {% if perms.epilepsy12.change_case or perms.epilepsy12.create_case %} - {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=choices hx_post=hx_post hx_target='#unknown_postcode' hx_name='unknown_postcode' hide_completion_fields=True enabled=True test_positive=test_positive hx_swap='innerHTML' %} + {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=choices hx_post=hx_post hx_target='#unknown_postcode' hx_name='unknown_postcode' hide_completion_fields=True test_positive=test_positive hx_swap='innerHTML' %} {% else %} - {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=choices hx_post=hx_post hx_target='#unknown_postcode' hx_name='unknown_postcode' hide_completion_fields=True enabled=False test_positive=test_positive hx_swap='innerHTML' %} + {% include 'epilepsy12/partials/page_elements/single_choice_multiple_toggle_button.html' with choices=choices hx_post=hx_post hx_target='#unknown_postcode' hx_name='unknown_postcode' hide_completion_fields=True disabled=True test_positive=test_positive hx_swap='innerHTML' %} {% endif %}
    {% for choice in choices %}
    {% for choice in choices %} {% if test_positive == choice.0 %}
    >{{choice.1}}
    {% else %}
    >{{choice}}
    {% else %}
    {% endif %}
    - {% if not enabled %} + {% if disabled %} You do not have permission to update this field {% endif %} diff --git a/templates/epilepsy12/partials/page_elements/toggle_button.html b/templates/epilepsy12/partials/page_elements/toggle_button.html index 61f04c12e..606b49f2f 100644 --- a/templates/epilepsy12/partials/page_elements/toggle_button.html +++ b/templates/epilepsy12/partials/page_elements/toggle_button.html @@ -17,7 +17,7 @@ label: this is the label text pulled in from the the model help text reference: this is the reference text pulled in from the the model help text data_position: this is the position of the popup label (js independent) ['top left', 'top center', 'top right', 'bottom left', 'bottom center', 'bottom right', 'right center', 'left center'] - enabled: buttons are disabled if users have view-only access + disabled: buttons are disabled if the cohort is closed orusers have view-only access {% endcomment %}
    @@ -43,7 +43,7 @@
    Yes
    Yes
    {% endif %} -->
    - {% if not enabled %} + {% if disabled %} You do not have permission to update this field {% endif %} From 9c19bbc3b9028e1404cc4161abb50c57969cebdb Mon Sep 17 00:00:00 2001 From: mbarton Date: Wed, 28 Jan 2026 20:28:53 +0000 Subject: [PATCH 18/19] Invert epilepsy_context --- epilepsy12/views/epilepsy_context_views.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/epilepsy12/views/epilepsy_context_views.py b/epilepsy12/views/epilepsy_context_views.py index 9f0f6f51a..cbf67730a 100644 --- a/epilepsy12/views/epilepsy_context_views.py +++ b/epilepsy12/views/epilepsy_context_views.py @@ -27,7 +27,7 @@ def epilepsy_context(request, editable, case_id): context = { "case_id": case_id, - "enabled": editable and request.user.has_perm("change_epilepsycontext"), + "disabled": not editable or not request.user.has_perm("change_epilepsycontext"), "registration": registration, "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, @@ -74,7 +74,6 @@ def previous_febrile_seizure(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, - "enabled": True, } response = recalculate_form_generate_response( @@ -116,7 +115,6 @@ def previous_acute_symptomatic_seizure(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, - "enabled": True, } response = recalculate_form_generate_response( @@ -158,7 +156,6 @@ def is_there_a_family_history_of_epilepsy(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, - "enabled": True, } response = recalculate_form_generate_response( @@ -200,7 +197,6 @@ def previous_neonatal_seizures(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, - "enabled": True, } response = recalculate_form_generate_response( @@ -241,7 +237,6 @@ def were_any_of_the_epileptic_seizures_convulsive(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, - "enabled": True, } response = recalculate_form_generate_response( @@ -283,7 +278,6 @@ def experienced_prolonged_generalized_convulsive_seizures(request, epilepsy_cont context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, - "enabled": True, } response = recalculate_form_generate_response( @@ -325,7 +319,6 @@ def experienced_prolonged_focal_seizures(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, "uncertain_choices": OPT_OUT_UNCERTAIN, - "enabled": True, } response = recalculate_form_generate_response( @@ -366,7 +359,6 @@ def diagnosis_of_epilepsy_withdrawn(request, epilepsy_context_id): context = { "epilepsy_context": epilepsy_context, - "enabled": True, } response = recalculate_form_generate_response( From a598553aa87c3df65c56619d7c578fb215d94c53 Mon Sep 17 00:00:00 2001 From: mbarton Date: Thu, 29 Jan 2026 11:41:24 +0000 Subject: [PATCH 19/19] Invert enabled - episodes --- .../views/multiaxial_diagnosis_views.py | 89 ++++++++++--------- .../multiaxial_diagnosis/episodes.html | 6 +- 2 files changed, 50 insertions(+), 45 deletions(-) diff --git a/epilepsy12/views/multiaxial_diagnosis_views.py b/epilepsy12/views/multiaxial_diagnosis_views.py index 480e29d6b..10a58fbe6 100644 --- a/epilepsy12/views/multiaxial_diagnosis_views.py +++ b/epilepsy12/views/multiaxial_diagnosis_views.py @@ -43,7 +43,11 @@ recalculate_form_generate_response, completed_fields, ) -from ..decorator import user_may_view_this_child, login_and_otp_required +from ..decorator import ( + user_may_view_this_child_2, + user_may_edit_this_child, + login_and_otp_required +) """ Constants for selections @@ -77,8 +81,8 @@ @login_and_otp_required() @permission_required("epilepsy12.view_multiaxialdiagnosis", raise_exception=True) -@user_may_view_this_child() -def multiaxial_diagnosis(request, case_id): +@user_may_view_this_child_2() +def multiaxial_diagnosis(request, editable, case_id): """ Called on load of form. If no instance exists, one is created. @@ -143,6 +147,7 @@ def multiaxial_diagnosis(request, case_id): "global_developmental_delay_or_learning_difficulties_severity_choices": SEVERITY, "organisation_id": organisation_id, "editable": editable, + "disabled": not editable, "can_change_syndrome": editable and request.user.has_perm("epilepsy12.change_syndrome"), "can_change_multiaxialdiagnosis": editable and request.user.has_perm("epilepsy12.change_multiaxialdiagnosis"), "can_change_comorbidity": editable and request.user.has_perm("epilepsy12.change_comorbidity"), @@ -159,7 +164,7 @@ def multiaxial_diagnosis(request, case_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.add_episode", raise_exception=True) def add_episode(request, multiaxial_diagnosis_id): """ @@ -252,7 +257,7 @@ def add_episode(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.view_episode", raise_exception=True) def edit_episode(request, episode_id): """ @@ -302,7 +307,7 @@ def edit_episode(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.delete_episode", raise_exception=True) def remove_episode(request, episode_id): """ @@ -332,7 +337,7 @@ def remove_episode(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.view_episode", raise_exception=True) def close_episode(request, episode_id): """ @@ -371,7 +376,7 @@ def close_episode(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def seizure_onset_date(request, episode_id): """ @@ -436,7 +441,7 @@ def seizure_onset_date(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def seizure_onset_date_confidence(request, episode_id): """ @@ -500,7 +505,7 @@ def seizure_onset_date_confidence(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def episode_definition(request, episode_id): """ @@ -564,7 +569,7 @@ def episode_definition(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def has_description_of_the_episode_or_episodes_been_gathered(request, episode_id): """ @@ -640,7 +645,7 @@ def has_description_of_the_episode_or_episodes_been_gathered(request, episode_id @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def edit_description(request, episode_id): """ @@ -679,7 +684,7 @@ def edit_description(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def delete_description_keyword(request, episode_id, description_keyword_id): """ @@ -722,7 +727,7 @@ def delete_description_keyword(request, episode_id, description_keyword_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def epilepsy_or_nonepilepsy_status(request, episode_id): """ @@ -801,7 +806,7 @@ def epilepsy_or_nonepilepsy_status(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def epileptic_seizure_onset_type(request, episode_id): """ @@ -869,7 +874,7 @@ def epileptic_seizure_onset_type(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def focal_onset_epilepsy_checked_changed(request, episode_id): """ @@ -935,7 +940,7 @@ def focal_onset_epilepsy_checked_changed(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def epileptic_generalised_onset(request, episode_id): """ @@ -982,7 +987,7 @@ def epileptic_generalised_onset(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def nonepilepsy_generalised_onset(request, episode_id): """ @@ -1029,7 +1034,7 @@ def nonepilepsy_generalised_onset(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def nonepileptic_seizure_type(request, episode_id): """ @@ -1088,7 +1093,7 @@ def nonepileptic_seizure_type(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_episode", raise_exception=True) def nonepileptic_seizure_subtype(request, episode_id): """ @@ -1141,7 +1146,7 @@ def nonepileptic_seizure_subtype(request, episode_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.add_syndrome", raise_exception=True) def add_syndrome(request, multiaxial_diagnosis_id): """ @@ -1182,7 +1187,7 @@ def add_syndrome(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.view_syndrome", raise_exception=True) def edit_syndrome(request, syndrome_id): """ @@ -1243,7 +1248,7 @@ def edit_syndrome(request, syndrome_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.delete_syndrome", raise_exception=True) def remove_syndrome(request, syndrome_id): """ @@ -1270,7 +1275,7 @@ def remove_syndrome(request, syndrome_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.view_episode", raise_exception=True) def close_syndrome(request, syndrome_id): """ @@ -1301,7 +1306,7 @@ def close_syndrome(request, syndrome_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def syndrome_present(request, multiaxial_diagnosis_id): """ @@ -1343,7 +1348,7 @@ def syndrome_present(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def epilepsy_cause_known(request, multiaxial_diagnosis_id): """ @@ -1387,7 +1392,7 @@ def epilepsy_cause_known(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def epilepsy_cause(request, multiaxial_diagnosis_id): """ @@ -1429,7 +1434,7 @@ def epilepsy_cause(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def epilepsy_cause_categories(request, multiaxial_diagnosis_id): """ @@ -1480,7 +1485,7 @@ def epilepsy_cause_categories(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def relevant_impairments_behavioural_educational(request, multiaxial_diagnosis_id): """ @@ -1526,7 +1531,7 @@ def relevant_impairments_behavioural_educational(request, multiaxial_diagnosis_i @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.add_comorbidity", raise_exception=True) def add_comorbidity(request, multiaxial_diagnosis_id): """ @@ -1561,7 +1566,7 @@ def add_comorbidity(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.view_comorbidity", raise_exception=True) def edit_comorbidity(request, comorbidity_id): """ @@ -1586,7 +1591,7 @@ def edit_comorbidity(request, comorbidity_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.delete_comorbidity", raise_exception=True) def remove_comorbidity(request, comorbidity_id): """ @@ -1618,7 +1623,7 @@ def remove_comorbidity(request, comorbidity_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.view_comorbidity", raise_exception=True) def close_comorbidity(request, comorbidity_id): """ @@ -1655,7 +1660,7 @@ def close_comorbidity(request, comorbidity_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_comorbidity", raise_exception=True) def comorbidity_diagnosis_date(request, comorbidity_id): """ @@ -1698,7 +1703,7 @@ def comorbidity_diagnosis_date(request, comorbidity_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_comorbidity", raise_exception=True) def comorbidity_diagnosis(request, comorbidity_id): """ @@ -1746,7 +1751,7 @@ def comorbidity_diagnosis(request, comorbidity_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.view_comorbidity", raise_exception=True) def comorbidities(request, multiaxial_diagnosis_id): """ @@ -1773,7 +1778,7 @@ def comorbidities(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def mental_health_screen(request, multiaxial_diagnosis_id): """ @@ -1812,7 +1817,7 @@ def mental_health_screen(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def mental_health_issue_identified(request, multiaxial_diagnosis_id): """ @@ -1859,7 +1864,7 @@ def mental_health_issue_identified(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def mental_health_issues(request, multiaxial_diagnosis_id): """ @@ -1908,7 +1913,7 @@ def mental_health_issues(request, multiaxial_diagnosis_id): @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def global_developmental_delay_or_learning_difficulties( request, multiaxial_diagnosis_id @@ -1959,7 +1964,7 @@ def global_developmental_delay_or_learning_difficulties( @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def global_developmental_delay_or_learning_difficulties_severity( request, multiaxial_diagnosis_id @@ -2000,7 +2005,7 @@ def global_developmental_delay_or_learning_difficulties_severity( @login_and_otp_required() -@user_may_view_this_child() +@user_may_edit_this_child() @permission_required("epilepsy12.change_multiaxialdiagnosis", raise_exception=True) def autistic_spectrum_disorder(request, multiaxial_diagnosis_id): """ diff --git a/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html b/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html index 5f2a65545..4a8c2f820 100644 --- a/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html +++ b/templates/epilepsy12/partials/multiaxial_diagnosis/episodes.html @@ -72,7 +72,7 @@