From ea18c4496ea32d7eaece5bdaf8141a22dd3cf40a Mon Sep 17 00:00:00 2001 From: Sean Rankine Date: Fri, 24 Jul 2026 12:49:57 +0100 Subject: [PATCH 1/5] Point the sitemap at the organisations page The sitemap links to the dedicated MOUs list page, which is being removed now that the organisations pages show each organisation's signed MOUs and agreements. Replace the sitemap's MOUs heading with a link to the organisations page, gated on the organisation policy instead of the MOU policy. The link to the MOU signing page is kept. --- app/controllers/sitemap_controller.rb | 6 +++--- app/views/sitemap/index.html.erb | 4 ++-- spec/views/sitemap/index.html.erb_spec.rb | 26 +++++++++++++++++------ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/controllers/sitemap_controller.rb b/app/controllers/sitemap_controller.rb index be5282b0f3..0eea849444 100644 --- a/app/controllers/sitemap_controller.rb +++ b/app/controllers/sitemap_controller.rb @@ -6,7 +6,7 @@ def index render locals: { active_groups:, trial_groups:, should_show_users_link: should_show_users?, - should_show_mous_link: should_show_mous_link?, + should_show_organisations_link: should_show_organisations_link?, should_show_reports_link: should_show_reports_link? } end @@ -14,8 +14,8 @@ def should_show_users? Pundit.policy(current_user, :user).can_manage_user? end - def should_show_mous_link? - Pundit.policy(current_user, :mou_signature).can_manage_mous? + def should_show_organisations_link? + Pundit.policy(current_user, :organisation).can_view_organisations? end def should_show_reports_link? diff --git a/app/views/sitemap/index.html.erb b/app/views/sitemap/index.html.erb index f18ceb632b..a1686bfec5 100644 --- a/app/views/sitemap/index.html.erb +++ b/app/views/sitemap/index.html.erb @@ -20,8 +20,8 @@ <% end %> -<% if should_show_mous_link %> -

<%= link_to t("page_titles.mou_signatures"), mou_signatures_path %>

+<% if should_show_organisations_link %> +

<%= link_to t("page_titles.organisations"), organisations_path %>

diff --git a/spec/views/sitemap/index.html.erb_spec.rb b/spec/views/sitemap/index.html.erb_spec.rb index 604fa066a9..b435b8f3eb 100644 --- a/spec/views/sitemap/index.html.erb_spec.rb +++ b/spec/views/sitemap/index.html.erb_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" describe "sitemap/index.html.erb" do - let(:locals) { { active_groups: [], trial_groups: [], should_show_users_link: false, should_show_mous_link: false, should_show_reports_link: false } } + let(:locals) { { active_groups: [], trial_groups: [], should_show_users_link: false, should_show_organisations_link: false, should_show_reports_link: false } } def render_template render template: "sitemap/index", locals: @@ -59,20 +59,32 @@ def render_template end end - context "when the should_show_mous_link is true" do - let(:locals) { super().merge(should_show_mous_link: true) } + context "when the should_show_organisations_link is true" do + let(:locals) { super().merge(should_show_organisations_link: true) } - it "includes a link to the MOUs page" do + it "includes a link to the organisations page" do + render_template + + expect(rendered).to have_link("Organisations", href: organisations_path) + end + + it "includes a link to the MOU signing page" do render_template expect(rendered).to have_link("Memorandum of Understanding", href: mou_signature_url) end end - context "when should_show_mous_link is false" do - let(:locals) { super().merge(should_show_mous_link: false) } + context "when should_show_organisations_link is false" do + let(:locals) { super().merge(should_show_organisations_link: false) } + + it "does not include a link to the organisations page" do + render_template + + expect(rendered).not_to have_link("Organisations") + end - it "does not include a link to the MOUs page" do + it "does not include a link to the MOU signing page" do render_template expect(rendered).not_to have_link("Memorandum of Understanding") From 23c5e4ef4a60eee8413fa6f1549857ba22a973e2 Mon Sep 17 00:00:00 2001 From: Sean Rankine Date: Fri, 24 Jul 2026 12:50:37 +0100 Subject: [PATCH 2/5] Remove the MOU item from header navigation The dedicated MOUs list page is being removed now that the organisations pages show each organisation's signed MOUs and agreements. Drop the MOUs item from the header navigation, since super admins can reach the same information through the Organisations item. Update the service navigation component preview to match what super admins now see. --- app/services/navigation_items_service.rb | 11 ----------- config/locales/en.yml | 1 - .../service_navigation_component_preview.rb | 2 +- spec/services/navigation_items_service_spec.rb | 11 ----------- 4 files changed, 1 insertion(+), 24 deletions(-) diff --git a/app/services/navigation_items_service.rb b/app/services/navigation_items_service.rb index 249efb23b6..3d5f4aa178 100644 --- a/app/services/navigation_items_service.rb +++ b/app/services/navigation_items_service.rb @@ -22,7 +22,6 @@ def navigation_items navigation_items = [ your_groups_navigation_item, - mou_navigation_item, users_navigation_item, organisations_navigation_item, brands_navigation_item, @@ -43,12 +42,6 @@ def your_groups_navigation_item NavigationItem.new(text: I18n.t("header.your_groups"), href: "/", active: false) end - def mou_navigation_item - return nil unless should_show_mous_link? - - NavigationItem.new(text: I18n.t("header.mous"), href: mou_signatures_path, active: false) - end - def users_navigation_item return nil unless should_show_user_profile_link? @@ -103,10 +96,6 @@ def should_show_user_profile_link? Pundit.policy(user, :user).can_manage_user? end - def should_show_mous_link? - Pundit.policy(user, :mou_signature).can_manage_mous? - end - def should_show_organisations_link? Pundit.policy(user, :organisation).can_view_organisations? end diff --git a/config/locales/en.yml b/config/locales/en.yml index 82a4ee3b41..68e3c6e801 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -952,7 +952,6 @@ en:

header: brands: Brands - mous: MOUs organisations: Organisations product_name: Forms reports: Reports diff --git a/spec/components/service_navigation_component/service_navigation_component_preview.rb b/spec/components/service_navigation_component/service_navigation_component_preview.rb index e79de933cc..511e1e9954 100644 --- a/spec/components/service_navigation_component/service_navigation_component_preview.rb +++ b/spec/components/service_navigation_component/service_navigation_component_preview.rb @@ -15,8 +15,8 @@ def with_navigation_links def with_super_admin_navigation_links render(ServiceNavigationComponent::View.new(navigation_items: [ { text: "Your groups", href: "/" }, - { text: "MOUs", href: "/mous" }, { text: "Users", href: "/users" }, + { text: "Organisations", href: "/organisations" }, { text: "Reports", href: "/reports" }, { text: "Support", href: "/support" }, { text: "A User", href: nil, classes: ["app-service-navigation__item--featured"] }, diff --git a/spec/services/navigation_items_service_spec.rb b/spec/services/navigation_items_service_spec.rb index 0c09378216..07877062c6 100644 --- a/spec/services/navigation_items_service_spec.rb +++ b/spec/services/navigation_items_service_spec.rb @@ -19,14 +19,12 @@ context "when user is present" do let(:can_manage_user) { false } - let(:can_manage_mous) { false } let(:can_view_reports) { false } let(:can_view_organisations) { false } let(:can_view_brands) { false } before do allow(Pundit).to receive(:policy).with(user, :user).and_return(instance_double(UserPolicy, can_manage_user?: can_manage_user)) - allow(Pundit).to receive(:policy).with(user, :mou_signature).and_return(instance_double(MouSignaturePolicy, can_manage_mous?: can_manage_mous)) allow(Pundit).to receive(:policy).with(user, :report).and_return(instance_double(ReportPolicy, can_view_reports?: can_view_reports)) allow(Pundit).to receive(:policy).with(user, :organisation).and_return(instance_double(OrganisationPolicy, can_view_organisations?: can_view_organisations)) allow(Pundit).to receive(:policy).with(user, :brand).and_return(instance_double(BrandPolicy, can_view_brands?: can_view_brands)) @@ -42,15 +40,6 @@ end end - context "when user can manage mous" do - let(:can_manage_mous) { true } - - it "includes mous in navigation items" do - mous_item = NavigationItemsService::NavigationItem.new(text: I18n.t("header.mous"), href: mou_signatures_path, active: false) - expect(service.navigation_items).to include(mous_item) - end - end - context "when user can view organisations" do let(:can_view_organisations) { true } From 9f0fd99cffec721dbd43756821f27e2b2cebcd81 Mon Sep 17 00:00:00 2001 From: Sean Rankine Date: Fri, 24 Jul 2026 12:57:27 +0100 Subject: [PATCH 3/5] Remove the MOUs list page The organisations pages now show each organisation's signed MOUs and agreements, making the standalone list at /mous redundant. Remove the route, the controller's index action and its authorisation callbacks, the view and its spec, and the locale strings only that view used. The MOU signing flow is unchanged. --- app/controllers/mou_signatures_controller.rb | 9 +--- app/views/mou_signatures/index.html.erb | 42 --------------- config/locales/en.yml | 3 -- config/routes.rb | 2 - .../mou_signatures/index.html.erb_spec.rb | 53 ------------------- 5 files changed, 1 insertion(+), 108 deletions(-) delete mode 100644 app/views/mou_signatures/index.html.erb delete mode 100644 spec/views/mou_signatures/index.html.erb_spec.rb diff --git a/app/controllers/mou_signatures_controller.rb b/app/controllers/mou_signatures_controller.rb index a360e7b76c..d9ad8a66aa 100644 --- a/app/controllers/mou_signatures_controller.rb +++ b/app/controllers/mou_signatures_controller.rb @@ -1,12 +1,5 @@ class MouSignaturesController < WebController - before_action :set_agreement_type, except: %i[index] - after_action :verify_authorized, only: %i[index] - - def index - authorize MouSignature, :can_manage_mous? - @mou_signatures = MouSignature.all - render template: "mou_signatures/index", locals: { mou_signatures: @mou_signatures } - end + before_action :set_agreement_type def show @mou_signature = current_user.current_organisation_mou_signature diff --git a/app/views/mou_signatures/index.html.erb b/app/views/mou_signatures/index.html.erb deleted file mode 100644 index 94a26d061b..0000000000 --- a/app/views/mou_signatures/index.html.erb +++ /dev/null @@ -1,42 +0,0 @@ -<% set_page_title(t("page_titles.mou_signatures")) %> -

<%= t("page_titles.mou_signatures") %>

- -
- <%= t("mou_signatures.index.preamble_html") %> - - <%= t("mou_signatures.index.share_mou_link_html", mou_link: link_to(mou_signature_url, mou_signature_url)) %> - - <%= t("mou_signatures.index.share_non_crown_agreement_link_html", agreement_link: link_to(non_crown_agreement_signature_url, non_crown_agreement_signature_url)) %> -
- -<% if mou_signatures.any? %> - <%= render ScrollingWrapperComponent::View.new(aria_label: t("mou_signatures.index.table_caption")) do |table| %> - <%= govuk_table do |table| %> - <%= table.with_caption(size: 'm', text: t("mou_signatures.index.table_caption")) %> - - <%= table.with_head do |head| - head.with_row do |row| - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.agreement_type")) - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.name")) - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.email")) - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.organisation")) - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.agreed_at")) - end - end %> - - <%= table.with_body do |body| - mou_signatures.each do |mou_signature| - body.with_row do |row| - row.with_cell(text: t("mou_signatures.index.agreement_type.#{mou_signature.agreement_type}")) - row.with_cell(text: mou_signature.user.name.presence || t("users.index.name_blank")) - row.with_cell do - govuk_link_to(mou_signature.user.email, edit_user_path(mou_signature.user)) - end - row.with_cell(text: mou_signature.organisation&.name.presence || t("users.index.organisation_blank")) - row.with_cell(text: l(mou_signature.created_at.to_date, :format => :long)) - end - end - end %> - <% end %> - <% end %> -<% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 68e3c6e801..67d4419977 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1461,13 +1461,11 @@ en: preamble_html: "

Someone from each organisation needs to agree to one of the GOV.UK Forms agreements before an organisation admin can be assigned or any groups upgraded to ‘active’.

\n" share_mou_link_html: "

For Crown organisations, like government departments and executive agencies, share the Memorandum of Understanding:
%{mou_link}

\n" share_non_crown_agreement_link_html: "

For non-crown organisations, like local authorities, share the GOV.UK Forms agreement:
%{agreement_link}

\n" - table_caption: Agreed MOUs and agreements table_headings: agreed_at: Agreed on agreement_type: Agreement type email: Email address name: Name - organisation: Organisation show: crown: banner: @@ -1703,7 +1701,6 @@ en: missing_draft_question: There’s a problem with this page mou_signature_confirmation: You’ve agreed to the MOU mou_signature_new: GOV.UK Forms Memorandum of Understanding - mou_signatures: MOUs and agreements move_form: Move this form to a different group name_settings: Ask for a person’s name new_group: Give your group a name diff --git a/config/routes.rb b/config/routes.rb index 28d0d5024c..879a3e32ac 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -215,8 +215,6 @@ resource :contact_for_research, controller: :contact_for_research, only: %i[edit update] end - resources :mou_signatures, only: %i[index], path: "mous" - resources :organisations, only: %i[index show] do resources :brands, controller: :organisation_brands, only: %i[new create destroy] patch "default-brand", to: "organisation_brands#update_default", as: :default_brand diff --git a/spec/views/mou_signatures/index.html.erb_spec.rb b/spec/views/mou_signatures/index.html.erb_spec.rb deleted file mode 100644 index 2fb3750615..0000000000 --- a/spec/views/mou_signatures/index.html.erb_spec.rb +++ /dev/null @@ -1,53 +0,0 @@ -require "rails_helper" - -describe "mou_signatures/index.html.erb" do - let(:mou_signatures) do - [ - build(:mou_signature, user: build_stubbed(:user), agreement_type: :crown, created_at: Time.zone.parse("October 12, 2023")), - build(:mou_signature, user: build_stubbed(:user), agreement_type: :non_crown, created_at: Time.zone.parse("October 13, 2023")), - ] - end - - before do - render template: "mou_signatures/index", locals: { mou_signatures: } - end - - it "contains page heading" do - expect(rendered).to have_css("h1.govuk-heading-l", text: I18n.t("page_titles.mou_signatures")) - end - - it "contains a scrollable wrapper with a table in it" do - expect(rendered).to have_css(".app-scrolling-wrapper > table") - end - - it "contains the agreement type" do - expect(rendered).to have_xpath "//thead/tr/th[1]", text: I18n.t("mou_signatures.index.table_headings.agreement_type") - expect(rendered).to have_xpath "//tbody/tr[1]/td[1]", text: I18n.t("mou_signatures.index.agreement_type.crown") - expect(rendered).to have_xpath "//tbody/tr[2]/td[1]", text: I18n.t("mou_signatures.index.agreement_type.non_crown") - end - - it "contains the user's name" do - expect(rendered).to have_text(mou_signatures.first.user.name) - end - - it "contains the user's email as a link to the edit page" do - expect(rendered).to have_link(mou_signatures.first.user.email, href: edit_user_path(mou_signatures.first.user)) - end - - it "contains organisation name" do - expect(rendered).to have_text(mou_signatures.first.user.organisation.name) - end - - it "contains the date the MOU was signed" do - expect(rendered).to have_text(I18n.l(mou_signatures.first.created_at.to_date, format: :long)) - end - - context "when there are no signed MOUs" do - let(:mou_signatures) { [] } - - it "does not show the MOU table" do - expect(rendered).not_to have_text(I18n.t("mou_signatures.table_caption")) - expect(rendered).not_to have_css("table") - end - end -end From ca6c6119e0c6be379d2a9bdc37434e1c0751ae8f Mon Sep 17 00:00:00 2001 From: Sean Rankine Date: Fri, 24 Jul 2026 12:57:59 +0100 Subject: [PATCH 4/5] Remove the unused MouSignaturePolicy Its last caller was the MOUs list page's index action, which has been removed. The sitemap and header navigation now use the organisation policy instead. --- app/policies/mou_signature_policy.rb | 5 ----- spec/policies/mou_signature_policy_spec.rb | 19 ------------------- 2 files changed, 24 deletions(-) delete mode 100644 app/policies/mou_signature_policy.rb delete mode 100644 spec/policies/mou_signature_policy_spec.rb diff --git a/app/policies/mou_signature_policy.rb b/app/policies/mou_signature_policy.rb deleted file mode 100644 index 420c8530bf..0000000000 --- a/app/policies/mou_signature_policy.rb +++ /dev/null @@ -1,5 +0,0 @@ -class MouSignaturePolicy < ApplicationPolicy - def can_manage_mous? - user.super_admin? - end -end diff --git a/spec/policies/mou_signature_policy_spec.rb b/spec/policies/mou_signature_policy_spec.rb deleted file mode 100644 index 75d7cc1062..0000000000 --- a/spec/policies/mou_signature_policy_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -require "rails_helper" - -describe MouSignaturePolicy do - subject(:policy) { described_class.new(user, :mouSignature) } - - let(:user) { build :super_admin_user } - - context "with super admin" do - it { is_expected.to permit_actions(%i[can_manage_mous]) } - end - - (User.roles.keys - %w[super_admin]).each do |role| - context "with #{role}" do - let(:user) { build :user, role: } - - it { is_expected.to forbid_actions(%i[can_manage_mous]) } - end - end -end From 11f15948f86957a04a2c67d5141df51c082737c9 Mon Sep 17 00:00:00 2001 From: Sean Rankine Date: Mon, 13 Jul 2026 16:57:29 +0100 Subject: [PATCH 5/5] Move MOU locale keys out of the index namespace The mou_signatures.index locale namespace referred to the MOUs list view, which no longer exists. Its surviving keys are only used by the organisations pages, so home them where they are consumed: the agreement type labels move to mou_signatures.agreement_type as they describe the model's enum and are shared between the organisations index, show and filter, while the table headings, preamble and share links move under organisations.show.mou_signatures alongside the existing heading. This stops the keys looking like dead code tied to a deleted view. --- .../organisations/filter_input.rb | 4 ++-- app/views/organisations/index.html.erb | 2 +- app/views/organisations/show.html.erb | 16 ++++++------- config/locales/en.yml | 23 +++++++++---------- .../organisations/filter_input_spec.rb | 4 ++-- .../requests/organisations_controller_spec.rb | 2 +- .../organisations/index.html.erb_spec.rb | 6 ++--- .../views/organisations/show.html.erb_spec.rb | 2 +- 8 files changed, 29 insertions(+), 30 deletions(-) diff --git a/app/input_objects/organisations/filter_input.rb b/app/input_objects/organisations/filter_input.rb index ecd6881a4e..7f5911c151 100644 --- a/app/input_objects/organisations/filter_input.rb +++ b/app/input_objects/organisations/filter_input.rb @@ -19,8 +19,8 @@ def sort_options def agreement_type_options [ OpenStruct.new(label: I18n.t("organisations.index.filter.agreement_type.any")), - OpenStruct.new(label: I18n.t("mou_signatures.index.agreement_type.crown"), value: "crown"), - OpenStruct.new(label: I18n.t("mou_signatures.index.agreement_type.non_crown"), value: "non_crown"), + OpenStruct.new(label: I18n.t("mou_signatures.agreement_type.crown"), value: "crown"), + OpenStruct.new(label: I18n.t("mou_signatures.agreement_type.non_crown"), value: "non_crown"), OpenStruct.new(label: I18n.t("organisations.index.filter.agreement_type.signed"), value: "signed"), OpenStruct.new(label: I18n.t("organisations.index.filter.agreement_type.none"), value: "none"), ] diff --git a/app/views/organisations/index.html.erb b/app/views/organisations/index.html.erb index df5567cff3..58812b3fb1 100644 --- a/app/views/organisations/index.html.erb +++ b/app/views/organisations/index.html.erb @@ -75,7 +75,7 @@ row.with_cell(text: @draft_form_counts.fetch(organisation.id, 0).to_s, numeric: true) agreement_types = @agreement_types.fetch(organisation.id, []) if agreement_types.any? - row.with_cell(text: agreement_types.map { |agreement_type| t("mou_signatures.index.agreement_type.#{agreement_type}") }.join(", ")) + row.with_cell(text: agreement_types.map { |agreement_type| t("mou_signatures.agreement_type.#{agreement_type}") }.join(", ")) else row.with_cell(text: t("organisations.index.agreement_type_none")) end diff --git a/app/views/organisations/show.html.erb b/app/views/organisations/show.html.erb index e5eeb3fa20..4138b714ea 100644 --- a/app/views/organisations/show.html.erb +++ b/app/views/organisations/show.html.erb @@ -69,17 +69,17 @@ <%= govuk_table do |table| %> <%= table.with_head do |head| head.with_row do |row| - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.agreement_type")) - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.name")) - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.email")) - row.with_cell(header: true, text: t("mou_signatures.index.table_headings.agreed_at")) + row.with_cell(header: true, text: t("organisations.show.mou_signatures.table_headings.agreement_type")) + row.with_cell(header: true, text: t("organisations.show.mou_signatures.table_headings.name")) + row.with_cell(header: true, text: t("organisations.show.mou_signatures.table_headings.email")) + row.with_cell(header: true, text: t("organisations.show.mou_signatures.table_headings.agreed_at")) end end %> <%= table.with_body do |body| @organisation.mou_signatures.each do |mou_signature| body.with_row do |row| - row.with_cell(text: t("mou_signatures.index.agreement_type.#{mou_signature.agreement_type}")) + row.with_cell(text: t("mou_signatures.agreement_type.#{mou_signature.agreement_type}")) row.with_cell(text: mou_signature.user.name.presence || t("users.index.name_blank")) row.with_cell do govuk_link_to(mou_signature.user.email, edit_user_path(mou_signature.user)) @@ -93,11 +93,11 @@ <% else %>

<%= t("organisations.show.mou_signatures.none") %>

- <%= t("mou_signatures.index.preamble_html") %> + <%= t("organisations.show.mou_signatures.preamble_html") %> - <%= t("mou_signatures.index.share_mou_link_html", mou_link: link_to(mou_signature_url, mou_signature_url)) %> + <%= t("organisations.show.mou_signatures.share_mou_link_html", mou_link: link_to(mou_signature_url, mou_signature_url)) %> - <%= t("mou_signatures.index.share_non_crown_agreement_link_html", agreement_link: link_to(non_crown_agreement_signature_url, non_crown_agreement_signature_url)) %> + <%= t("organisations.show.mou_signatures.share_non_crown_agreement_link_html", agreement_link: link_to(non_crown_agreement_signature_url, non_crown_agreement_signature_url)) %> <% end %>

<%= t("organisations.show.domains.heading") %>

diff --git a/config/locales/en.yml b/config/locales/en.yml index 67d4419977..fdbd91b9f9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1445,6 +1445,9 @@ en: heading_without_dates: Form metrics percentage: "%{number}%" mou_signatures: + agreement_type: + crown: Crown MOU + non_crown: Non-crown agreement confirmation: crown: body_html: | @@ -1454,18 +1457,6 @@ en: body_html: |

What happens next

We’ll email you with any updates to the agreement that are made in the future.

- index: - agreement_type: - crown: Crown MOU - non_crown: Non-crown agreement - preamble_html: "

Someone from each organisation needs to agree to one of the GOV.UK Forms agreements before an organisation admin can be assigned or any groups upgraded to ‘active’.

\n" - share_mou_link_html: "

For Crown organisations, like government departments and executive agencies, share the Memorandum of Understanding:
%{mou_link}

\n" - share_non_crown_agreement_link_html: "

For non-crown organisations, like local authorities, share the GOV.UK Forms agreement:
%{agreement_link}

\n" - table_headings: - agreed_at: Agreed on - agreement_type: Agreement type - email: Email address - name: Name show: crown: banner: @@ -1555,6 +1546,14 @@ en: mou_signatures: heading: MOUs and agreements none: No one has agreed an MOU or agreement for this organisation. + preamble_html: "

Someone from each organisation needs to agree to one of the GOV.UK Forms agreements before an organisation admin can be assigned or any groups upgraded to ‘active’.

\n" + share_mou_link_html: "

For Crown organisations, like government departments and executive agencies, share the Memorandum of Understanding:
%{mou_link}

\n" + share_non_crown_agreement_link_html: "

For non-crown organisations, like local authorities, share the GOV.UK Forms agreement:
%{agreement_link}

\n" + table_headings: + agreed_at: Agreed on + agreement_type: Agreement type + email: Email address + name: Name not_set: Not set summary: closed: Closed diff --git a/spec/input_objects/organisations/filter_input_spec.rb b/spec/input_objects/organisations/filter_input_spec.rb index 5f4c5a98ff..7899514422 100644 --- a/spec/input_objects/organisations/filter_input_spec.rb +++ b/spec/input_objects/organisations/filter_input_spec.rb @@ -43,8 +43,8 @@ it "returns the correct options" do expect(described_class.new.agreement_type_options).to eq([ OpenStruct.new(label: I18n.t("organisations.index.filter.agreement_type.any")), - OpenStruct.new(label: I18n.t("mou_signatures.index.agreement_type.crown"), value: "crown"), - OpenStruct.new(label: I18n.t("mou_signatures.index.agreement_type.non_crown"), value: "non_crown"), + OpenStruct.new(label: I18n.t("mou_signatures.agreement_type.crown"), value: "crown"), + OpenStruct.new(label: I18n.t("mou_signatures.agreement_type.non_crown"), value: "non_crown"), OpenStruct.new(label: I18n.t("organisations.index.filter.agreement_type.signed"), value: "signed"), OpenStruct.new(label: I18n.t("organisations.index.filter.agreement_type.none"), value: "none"), ]) diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb index f739ee7b13..307a7c9f0c 100644 --- a/spec/requests/organisations_controller_spec.rb +++ b/spec/requests/organisations_controller_spec.rb @@ -203,7 +203,7 @@ def organisation_row_order(response) expect(response.body).to include(organisation.name) expect(response.body).to include(organisation.slug) expect(response.body).to include(organisation.admin_users.first.email) - expect(response.body).to include(I18n.t("mou_signatures.index.agreement_type.#{organisation.mou_signatures.first.agreement_type}")) + expect(response.body).to include(I18n.t("mou_signatures.agreement_type.#{organisation.mou_signatures.first.agreement_type}")) expect(response.body).to include(organisation_domain.domain) end diff --git a/spec/views/organisations/index.html.erb_spec.rb b/spec/views/organisations/index.html.erb_spec.rb index 67b2268c58..ab2a647b73 100644 --- a/spec/views/organisations/index.html.erb_spec.rb +++ b/spec/views/organisations/index.html.erb_spec.rb @@ -35,8 +35,8 @@ expect(rendered).to have_field("filter[name]") expect(rendered).to have_select("filter[agreement_type]", options: [ I18n.t("organisations.index.filter.agreement_type.any"), - I18n.t("mou_signatures.index.agreement_type.crown"), - I18n.t("mou_signatures.index.agreement_type.non_crown"), + I18n.t("mou_signatures.agreement_type.crown"), + I18n.t("mou_signatures.agreement_type.non_crown"), I18n.t("organisations.index.filter.agreement_type.signed"), I18n.t("organisations.index.filter.agreement_type.none"), ]) @@ -87,7 +87,7 @@ end it "shows the agreement type for each organisation" do - expect(rendered).to have_xpath "//tbody/tr[1]/td[5]", text: I18n.t("mou_signatures.index.agreement_type.crown") + expect(rendered).to have_xpath "//tbody/tr[1]/td[5]", text: I18n.t("mou_signatures.agreement_type.crown") expect(rendered).to have_xpath "//tbody/tr[2]/td[5]", text: I18n.t("organisations.index.agreement_type_none") end diff --git a/spec/views/organisations/show.html.erb_spec.rb b/spec/views/organisations/show.html.erb_spec.rb index a7687bd199..1fd1f49557 100644 --- a/spec/views/organisations/show.html.erb_spec.rb +++ b/spec/views/organisations/show.html.erb_spec.rb @@ -52,7 +52,7 @@ it "lists the MOU signatures" do mou_signature = organisation.mou_signatures.first - expect(rendered).to have_text(I18n.t("mou_signatures.index.agreement_type.#{mou_signature.agreement_type}")) + expect(rendered).to have_text(I18n.t("mou_signatures.agreement_type.#{mou_signature.agreement_type}")) expect(rendered).to have_link(mou_signature.user.email, href: edit_user_path(mou_signature.user)) expect(rendered).to have_text(I18n.l(mou_signature.created_at.to_date, format: :long)) end