Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tag #62

Open
govuk-design-system opened this issue Jan 12, 2018 · 28 comments
Open

Tag #62

govuk-design-system opened this issue Jan 12, 2018 · 28 comments
Labels
component Goes in the 'Components' section of the Design System

Comments

@govuk-design-system
Copy link
Collaborator

Use this issue to discuss this component in the GOV.UK Design System.

@timpaul timpaul added the component Goes in the 'Components' section of the Design System label May 21, 2018
@abbott567
Copy link

We have these in our service to show the status of a claim. However, we have modified the background colour so agents can quickly identify allowed claims vs disallowed claims etc. Is there any scope to add modifier classes for this?

eg: .govuk-c-tag .govuk-c-tag--danger

image

@NickColley
Copy link
Contributor

@abbott567 makes sense! For now when you're extending the classes make sure to change the namespace to something that will not conflict in the future: .app-tag--danger etc

@danboscaro

This comment has been minimized.

@NickColley

This comment has been minimized.

@mrkwrght
Copy link

we have modified our status tags on the tasklist to be easy to read by mading them lower case and upping the font size to 19px like the rest of the text.

we have also created a 'In Progress' tag because it wasn't clear to our users which tasks had been started when navigating back to the tasklist.

feedback would be great!

screenshot 2018-11-28 at 10 25 17

@jennifer-hodgson
Copy link

Interested to know findings about use of coloured status tags as opposed to simple text (as per the GOV.UK Design System community backlog), following discussions in the HMRC design community.

@dashouse
Copy link

Tags spotted on MOT History service

Screen Shot 2019-05-28 at 15 43 12

@adamsilver
Copy link

On the Apply for teacher training services at DfE we use the Tag component extensively.

But the colours were found to have poor contrast in our recent accessibility DAC audit.

We've solved this by using tints...

Original styles with poor contrast

Here's a few screens with the original design:

Task list with outlinedd incomplete tag
image

State of individual course choice
image

Other states from the provider point of view
image

Proposed design with good contrast

Here I've used tints of the GOV.UK Design System colour palette.

Task list
image

State of individual course choice
image

Other states from the provider point of view
image

@timpaul
Copy link
Contributor

timpaul commented Feb 25, 2020

Working group review: additional colour variants

On 13 February 2020 the Design System working group approved the addition of different coloured variants of this component. Here’s a summary of recommendations that working group members made, and of our decisions regarding them.


Recommendation: Use white text on a standard colour background

Decision: No action. There aren’t enough colours from the standard palette that contrast sufficiently against white to provide enough options. Also, the MOJ has found that some users confuse tags with white text on a coloured background for buttons.


Recommendation: Use standard coloured text on white background, with a border in the same colour.

Decision: No action. As above, there aren’t enough colours from the standard palette that contrast sufficiently against white to provide enough options.


Recommendation: Reduce the number of colours provided.

Decision: No action. There is evidence that some services that need this many colours, and the guidance recommends using ‘as few as possible’.


Recommendation: Increase the tonal contrast between different tints.

Decision: No action. This wouldn’t be possible with this many colours. The guidance points out that colour should only be used as an enhancement, so designers should not rely on users being able to perceive the difference.


Recommendation: State which colours to use for specific status types.

Decision: No action for now. If we did this it would need to be at the system level rather than just in this component. Colours don't have a consistent meaning across different cultures, so defining the way they should be used would need to be done with care. The existing examples probably do this with a light enough touch.


Recommendation: Change the name of the component to ‘phase’ or ‘status’

Decision: We will add these as aliases to the search, so that people will find the component if they use those terms.


Thanks as always to everyone who gave their time to this. We will publish the updated component in the next 2 weeks.

@edwardhorsford
Copy link

I'd like to suggest that the css for the tags includes nowrap of some kind. If tags contain longer bits of text or happen to hit the breakpoint poorly, they wrap, looking weird.

I can't think of a scenario where you would want it to wrap.

Example from another team that was shared on Slack:
welsh-overflowing

@joelanman
Copy link
Contributor

I think in a case like this from previous in the thread you would want it to wrap rather than break the column

screenshot of table, with tags in a status column

@frankieroberto
Copy link

The NHS Digital team used the Tag component within an accordion on the Get a coronavirus test service to indicate the availability of tests within different regions.

Screenshot 2021-07-12 at 16 41 10

They found that it was very common for users to click the green 'AVAILABLE' tags, thinking that this would let them book an appointment.

@cjforms
Copy link

cjforms commented Jul 14, 2021

"If something looks like a button, users will treat it as a button" (by me, constantly)

It's a corollary of "Basic Best Practice for Buttons number 1: Make the Buttons Look Like Buttons"https://www.uxmatters.com/mt/archives/2012/05/7-basic-best-practices-for-buttons.php

The obvious solution is: make them into buttons. Then everyone is happy.

@kelliedesigner
Copy link

Agree @cjforms

Building on Tag to include the ability to make it a link is something @fofr has been exploring at MOJ in an internal product for probation practitioners to manage supervisions with people on probation.

Design history post: https://ms-design-history.herokuapp.com/risk-tab/

This could be something we contribute to the GOV.UK Design System

@frankieroberto
Copy link

This is something we are exploring as part of the Task List collaboration.

@edwardhorsford
Copy link

Like the NHS I've seen multiple participants test if they can click on them - though the number who click are still in the minority - I might estimate 20-30% of participants. However they don't expect they are or should be clickable - it's more that they're unsure. When presented with the interface they wonder aloud whether they are clickable, and test that behaviour.

I've yet to come across a participant where this has been a blocker - after they realise they're not clickable, they're fine.

This raises the question of whether the benefits of the the tag being visually distinct outweighs the downsides that some users attempt to click them.


I'd be wary of making these in to buttons. Tags show 'the status of something' - they don't always logically do or go anywhere.

Example from my service:
A list of records with statuses - the tag could be a button.
Screenshot 2021-07-14 at 17 21 10

When you open a record, the same status is shown - here a button would not make any sense.
Screenshot 2021-07-14 at 17 23 53

Making it a button would raise several questions:

  • Do they sometimes then act as buttons but sometimes not?
  • If they do act on buttons, do we get rid of links / other buttons as well that we were originally using? or have two UI components going to the same destination? (a minor accessibility issue)
  • How do you show the status of something (the purpose of the component) when you don't want a button.

@cjforms
Copy link

cjforms commented Jul 14, 2021

Excellent points as always @edwardhorsford

I've only seen them in the context of task lists, and I agree that a sometimes button / sometimes not button tag wouldn't be a good idea.

My response to your questions might be:

  • Do they sometimes then act as buttons but sometimes not?

No, that would be a nightmare

  • If they do act on buttons, do we get rid of links / other buttons as well that we were originally using? or have two UI components going to the same destination? (a minor accessibility issue)

I've seen plenty of instances where buttons have variations for assorted reasons. These do not seem to disconcert users at all, so long as the buttons look sufficiently 'buttony'.

  • How do you show the status of something (the purpose of the component) when you don't want a button.

With formatted text that does not use buttony formatting? (now you'll correctly challenge me about what that might be - I think the buttony effect comes from having a rectangle of colour behind the text. But this is the one where I feel that I'm on the shakiest ground - thanks for asking it.

@emilycolmanDWP
Copy link

emilycolmanDWP commented Jul 22, 2021

I'm interested to know whether status tags were always intended to be automated, because they're essentially a result of something that's occurred. For example, the user completes a section within a task list > status is automatically updated to 'Completed'.

We are using status tags within our internal case management system for health assessments, however the user has to manually update the status once they've finished a task because the back-end capability isn't ready to support automation yet (as I understand it). They currently do this by visiting a screen that asks them which status they want to update to, with a list of radio options to choose from. It has very much been built from a technical architect's perspective. We have tried to keep the statuses as broad as possible, but user feedback has indicated that they need additional ones, and at a more granular level. This means the radio options screen will get longer, which brings its own concerns.

We're also running into other difficulties and I won't outline them all here, it would be great to get in touch with someone who is well-versed on the use of status tags or even introduced them to the design system.

@fofr
Copy link

fofr commented Jul 23, 2021

For reference, as @kelliedesigner mentioned, this is how we are trying out a tag that is also a link on the MOJ probation service – trying to make it more link like rather than button like.

Screenshot 2021-07-23 at 13 29 07

Hover and focus states:
Screenshot 2021-07-23 at 13 28 40


MOJ also has what it calls a badge component that only uses a coloured border, rather than a background, which might be less buttony (I don't know if people are trying to click these as frequently):
https://design-patterns.service.justice.gov.uk/components/badge/

Screenshot 2021-07-23 at 13 49 22


At DfE on the Get help with tech service we observed users attempting to click tags – these were the majority of users in research, and they did not always recover by clicking the school link on the left. This was the layout causing that issue:

Screenshot 2021-07-23 at 13 42 08

@Rich-Cooley
Copy link

We are using tags as part of HMRC's making tax digital work. I have an interesting situation where we need to show tags with an appropriate status and something to indicate there are one or more errors in that section.

I'm wondering if anyone has experimented with combining tags with something like a small count to indicate the number of errors? It may be something like this… 1️⃣

image

@dominichurst-ur
Copy link

I am working with DfT on the Create Fares Data project. (Bus operators submitting information). One screen is your typical table with a tag status. The table can get quite long depending on how many services you have and we want to include messaging/ alert to the top of the page if a service has a certain status/ tag. (eg "Needs attention"). The question is does anyone do something similar and if so how. I was thinking inset text or warning text

@CharlotteDowns
Copy link

@dominichurst-ur it might be also worth looking into the notification banner component.

@dombillington
Copy link

Is there a reason why the text in the tag element is in uppercase? We're trying to avoid uppercase content to help with readability so it would be good to know if there's a clear justification for the uppercase text in this element.

@MMDWP
Copy link

MMDWP commented Nov 30, 2023

Is there any chance we can increase the contrast radio abit for some of the text colours within tags?
In UR we had couple people say they struggle with the Red in particular.

I've had a check of the and its coming out as AAA for 'large' and AA for 'Regular' (See screen shot, granted its just the first contact radio checker found)

AAA for the large text, but at 14pt, I would say its really 'normal', just bold and with wider kerning
When tested against 'regualar' weight type its only AA.

The blue is also only AA at 'normal'

Screenshot 2023-11-30 at 08 46 06

@36degrees
Copy link
Contributor

In GOV.UK Frontend v5.0 (released 8 December 2023) we changed the design of the Tag component to improve accessibility and readability.

Text within the tag is no longer bold and uppercase with extra letter spacing. It's now regular 19px text with the first letter of a word capitalised and the rest of the content lowercase. Due to this, there might be changes to the width of existing tags.

The colours have also changed to make them more distinguishable from buttons.

Before

Example of tags before the changes in v5.0. Tags are in uppercase, bold and have extra letter spacing.

After

Example of tags after the changes in v5.0. Tags are in sentence case, normal weight and no longer have extra letter spacing. Some of the colours have changed to improve contrast.

These changes were introduced in:

@36degrees
Copy link
Contributor

Is there any chance we can increase the contrast radio abit for some of the text colours within tags? In UR we had couple people say they struggle with the Red in particular.

@MMDWP as mentioned above, some of the tag colours changed in v5, including red which is now #2a0b06 on #f4cdc6. This provides a greater contrast ratio of 12.52:1, which now passes WCAG 2.2 1.4.6 Contrast (Enhanced) (AAA) for normal text.

I've also checked blue tags which you mentioned, which are now #0C2D4A on #BBD4EA with a contrast ratio of 9.2:1 (up from 6.52:1) and also pass WCAG 2.2 1.4.6 Contrast (Enhanced) (AAA) for normal text.

I've only given the other tag colours a cursory check, but it looks like they all meet the 7:1 ratio required for WCAG 2.2 1.4.6 Contrast (Enhanced) (AAA) apart from green which falls slightly short (6.16:1).

If you need to see the old styles for comparison they're available at https://v4--govuk-design-system-preview.netlify.app/components/tag/.

jimwashbrook added a commit to DFE-Digital/sts-plan-technology-for-your-school that referenced this issue Feb 20, 2024
- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List
jimwashbrook added a commit to DFE-Digital/sts-plan-technology-for-your-school that referenced this issue Feb 21, 2024
* 💄: Update Tag colour to match changes

- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List

* :zap:: Make recommendations + category views async

* fix: ignore capitalisation

* fix: Web unit tests

* fix: Application tests
jimwashbrook added a commit to DFE-Digital/sts-plan-technology-for-your-school that referenced this issue Feb 29, 2024
* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

* tests: Initial programatic E2E tests work (#493)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: add missing comma

* fix: file names, null data

* fix: add relative path

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* tests: Add category and sections to programatic tests (#494)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* fix: remove file

* feaT: Process sections and categories on /self-assessment page

* fix: skip test due to missing data

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* tests: Refactor existing work on dynamic E2E tests (#496)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* refactor: cleanup duplicated code.

* merge development

* chore: delete old dupe files

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* fix: checkout repo

* refactor: remove superseded workflow

* refactor: add relevant triggers to paths and run some in parallel

* refactor: concurrency groups, pass artifact name as variable

* refactor: concurrency group naming

* chore: remove debug code

* tests: Navigate through every question in a sub-topic using Contentful data (#499)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* tests: E2E tests for every possible recommendation page (#500)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* feat: validate every recommendation for every maturity

* feat: validate recommendation pages

* chore: revert testing things

* refactor: delete unused workflow

* chore: update various versions in workflows

* chore: update various versions in custom actions

* tests: Last E2E component tests (#501)

* fix: Test interstitial page content + replace all whitespaces

* chore: remove empty line

* tests: validate warning component + button with entry reference

* chore: remove log command

* feat: inset text validator + slight refactor

* feat: Test nav link

* docs: update components done

* terraform-docs: automated action

* refactor: see what happens if v2 is changed to v3 for terraform setup

* refactor: see what happens if v2 is changed to v3 for terraform setup

* chore: remove todo

* tests: Split up unit tests by page/section (#502)

* tests: Split up unit tests by page/section

* fix: unauthorised pages

* fix: only test unauthorised pages again

* chore: remove unused var

* chore: remove unused before

* chore: remove log command

* chore: remove log command

* Qa view spike (#504)

* test graphiz dependency install in actions

* test graphiz dependency install in actions

* image output upload

* image upload

* test

* correct location for generated images

* output artifact id

* output artifact id

* test building link to artifact

* retrieve data from sql server

* retrieve data from sql server

* list files

* Add visualisation script to loop through the data files to create viz for each section

* call the teams webhook

* typo

* typo

* test using AD connection string

* retest

* Use access token for DB connection

* use dev environment just for testing

* add required variables

* test building sql connection rather than from secret

* Add new question/answer visaulisation workflow

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* wip cleanup (#498)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* chore: upgrade missed version

* refactor: merge ShouldDropMessage and ShouldIgnoreMessage

* Format visualisations (#506)

* Add formatting to visualisations, removes cron schedule from workflow and add as job within matrix deploy

* add -y flag for any prompts

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* refactor: Log which required properties are null in such an event

* chore: remove block comment

* fix: RichText retrieval bug (#507)

- Fixes types in `@RichTextIds` and `idColumn`
- Optimised the querying of the fetching of the `ContentComponentIds` and the `RichTextIds`

* refactor: Check validity of component always

* refactor: remove unused parameter

* refactor: remove unused parameter

* refactor: update dotnet-coverage to latest

* refactor: rollback dotnet-coverage to last known good version

* fix: rollback dotnet-coverage for sonarcloud

* test: update tests

* Feat/cleanup (#512)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* refactor: change valid component logic

* chore: move node unit tests package files to actual folder (#515)

* chore: move node unit tests package files to actual folder

- These were originally in root dir incase we had tests spread out across multiple projects. Which we don't so this just cleans it up.

* fix: test path

Swear I already changed this but apparently not.

* chore: Update all nuget packages. (#510)

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* feat: Convert RichTextContents function into a view (#509)

* feat: refactor function RichTextContents by page into view

* fix: correct type

* Linted Code in Dfe.PlanTech.Domain/

* chore: linting + remove unnecessary query

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* fix: remove broken sql

* chore: small refactor + consistency changes

- Removes unncessary toplevel `SELECT *` statement
- Made every table name + column name in [] to ensure consistency
- Added actual columns to the `SELECT` query for the function

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Feat/cleanup (#517)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* Linted Code in Dfe.PlanTech.Infrastructure.Contentful/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: W.I.P add semantic versioning

* refactor: global install semantic-release

* refactor: install dependencies

* refactor: install dependencies with versions

* feat: use semantic versioning

* refactor: run it on push test

* refactor: tag change

* refactor: create contentful entity classes

* Feat/cleanup (#518)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* refactor: change string to Title component

* fix(sql): 🐛 Fixes a bug where Warning components weren't display text (#521)

* fix(sql): Fixes a bug where Warning components weren't display text

* fix: missing marks and data

* refactor: change Maturity enum to string

* refactor: rename variables to match cms

* refactor: add Title field to RecommendationChunk

* refactor: change title component to header component

* feat: Update Gov UK Packages (#523)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype (#525)

**:sparkles: Features**:

- Add the `step by step navigation` JS and CSS from the `@govuk-prototype-kit/step-by-step` package

**:adhesive_bandage: Fixes**:

- Updates the `Warning component` tag helper, to use the new class to hide the warning text.

* refactor: update interfaces

* test: add temp dummy tests

* refactor: use generic type in interface

* fix: :green_heart: Semver release (#527)

* fix: Remove exec commands

* ⚡: Update Category + Recommendation View Components (#529)

* 💄: Update Tag colour to match changes

- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List

* :zap:: Make recommendations + category views async

* fix: ignore capitalisation

* fix: Web unit tests

* fix: Application tests

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: change test tag name

* refactor: add debug paths

* refactor: remove debug code

* refactor: change Title to string, link SubtopicRecommendation to subtopic

* Feat/accordion view step by step (#528)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* WIP - accordion view component

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype

* feat: Accordion view component added.

* feat: Accordion view component added.

* WIP

* WIP - step by step accordion component

* feat: basic step by step accordion component view

* resolve merge conflict

* Updated JS + CSS files

* feat: Step by step accordion view component added.

* Linted Code in Dfe.PlanTech.Domain/

---------

Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔨 Workflow + SQL script to clear user data from DB (#531)

* fix: add file extension

* feat: Initial script to clear DB

* fix: correct ordering, add signin table, remove *

* chore: move sql script

Otherwise it would run on every environment when deployed and clear the data... Whoops.

* cicd: Add workflow

* feat: disallow production

* TESTING: check inputs works.

* UNDO TEST CHANGES

* fix(?): remove init from BeforeContent

- This simply added the class `js-enabled` to the Body element. This seemed to already be covered by the `initAll()` functionality from the govuk-frontend.js file

* fix: remove step by step navigation js from layout (#533)

* chore: Add GovUK body class script in (#534)

Removed this yesterday in an erroneous attempt to fix the E2E tests. It's necessary for the GOV UK front-end initialisation script though so I've added back in.

* Feat/CodeCleanup (#524)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: Fix SQL script to clear DB (#536)

- For some reason the 'Go' commands weren't working from the workflow (although worked directly on DB). Removed.
- Tweaked CI/CD pipeline a bit to ensure safety

* docs(workflows): 📝 Add workflow changes to docs (#537)

* 📝(workflows) Add new workflows to documentation

- Add information on the `create-tag-release` workflow
- Add information on the `clear-user-data-from-db` workflow
- Moves the information about the `terraform-pr-check` workflow lower down in the document so that it is in alphabetical order

* 📝(workflows) Add TOC

GitHub should automatically have one available but you have to toggle it and this will be immediately visible.

* chore: Packages Update (#540)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

* Package updates

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: remove text match check (#542)

* fix(197631): 🐛 Fix content ordering on page (#541)

* feat: add error catching

* feat: add join table properties

* chore: remove debug lines

* chore: formatting

* feat: add order pagecontent

* feat: order contents

* refactor: cleanup ordering

* tests: Check for order

* tests: Update unit tests

* tests: Update unit tests

* chore: rename to be more descriptive

* Trigger tf doc update (#544)

* Trigger tf doc update

* terraform-docs: automated action

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 💄 css stylings (#546)

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file (#547)

* fix: 💄 css stylings

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file

* feat: Add order column to PageContents (#549)

* cicd: don't lint if dir not had changes

* feat: add order columnt ot able

* fix: remove incorrect changes

---------

Co-authored-by: jimwashbrook <131891854+jimwashbrook@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Iain-Stanger added a commit to DFE-Digital/sts-plan-technology-for-your-school that referenced this issue Feb 29, 2024
* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

* tests: Initial programatic E2E tests work (#493)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: add missing comma

* fix: file names, null data

* fix: add relative path

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* tests: Add category and sections to programatic tests (#494)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* fix: remove file

* feaT: Process sections and categories on /self-assessment page

* fix: skip test due to missing data

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* tests: Refactor existing work on dynamic E2E tests (#496)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* refactor: cleanup duplicated code.

* merge development

* chore: delete old dupe files

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* fix: checkout repo

* refactor: remove superseded workflow

* refactor: add relevant triggers to paths and run some in parallel

* refactor: concurrency groups, pass artifact name as variable

* refactor: concurrency group naming

* chore: remove debug code

* tests: Navigate through every question in a sub-topic using Contentful data (#499)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* tests: E2E tests for every possible recommendation page (#500)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* feat: validate every recommendation for every maturity

* feat: validate recommendation pages

* chore: revert testing things

* refactor: delete unused workflow

* chore: update various versions in workflows

* chore: update various versions in custom actions

* tests: Last E2E component tests (#501)

* fix: Test interstitial page content + replace all whitespaces

* chore: remove empty line

* tests: validate warning component + button with entry reference

* chore: remove log command

* feat: inset text validator + slight refactor

* feat: Test nav link

* docs: update components done

* terraform-docs: automated action

* refactor: see what happens if v2 is changed to v3 for terraform setup

* refactor: see what happens if v2 is changed to v3 for terraform setup

* chore: remove todo

* tests: Split up unit tests by page/section (#502)

* tests: Split up unit tests by page/section

* fix: unauthorised pages

* fix: only test unauthorised pages again

* chore: remove unused var

* chore: remove unused before

* chore: remove log command

* chore: remove log command

* Qa view spike (#504)

* test graphiz dependency install in actions

* test graphiz dependency install in actions

* image output upload

* image upload

* test

* correct location for generated images

* output artifact id

* output artifact id

* test building link to artifact

* retrieve data from sql server

* retrieve data from sql server

* list files

* Add visualisation script to loop through the data files to create viz for each section

* call the teams webhook

* typo

* typo

* test using AD connection string

* retest

* Use access token for DB connection

* use dev environment just for testing

* add required variables

* test building sql connection rather than from secret

* Add new question/answer visaulisation workflow

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* wip cleanup (#498)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* chore: upgrade missed version

* refactor: merge ShouldDropMessage and ShouldIgnoreMessage

* Format visualisations (#506)

* Add formatting to visualisations, removes cron schedule from workflow and add as job within matrix deploy

* add -y flag for any prompts

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* refactor: Log which required properties are null in such an event

* chore: remove block comment

* fix: RichText retrieval bug (#507)

- Fixes types in `@RichTextIds` and `idColumn`
- Optimised the querying of the fetching of the `ContentComponentIds` and the `RichTextIds`

* refactor: Check validity of component always

* refactor: remove unused parameter

* refactor: remove unused parameter

* refactor: update dotnet-coverage to latest

* refactor: rollback dotnet-coverage to last known good version

* fix: rollback dotnet-coverage for sonarcloud

* test: update tests

* Feat/cleanup (#512)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* refactor: change valid component logic

* chore: move node unit tests package files to actual folder (#515)

* chore: move node unit tests package files to actual folder

- These were originally in root dir incase we had tests spread out across multiple projects. Which we don't so this just cleans it up.

* fix: test path

Swear I already changed this but apparently not.

* chore: Update all nuget packages. (#510)

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* feat: Convert RichTextContents function into a view (#509)

* feat: refactor function RichTextContents by page into view

* fix: correct type

* Linted Code in Dfe.PlanTech.Domain/

* chore: linting + remove unnecessary query

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* fix: remove broken sql

* chore: small refactor + consistency changes

- Removes unncessary toplevel `SELECT *` statement
- Made every table name + column name in [] to ensure consistency
- Added actual columns to the `SELECT` query for the function

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Feat/cleanup (#517)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* Linted Code in Dfe.PlanTech.Infrastructure.Contentful/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: W.I.P add semantic versioning

* refactor: global install semantic-release

* refactor: install dependencies

* refactor: install dependencies with versions

* feat: use semantic versioning

* refactor: run it on push test

* refactor: tag change

* refactor: create contentful entity classes

* Feat/cleanup (#518)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* refactor: change string to Title component

* fix(sql): 🐛 Fixes a bug where Warning components weren't display text (#521)

* fix(sql): Fixes a bug where Warning components weren't display text

* fix: missing marks and data

* refactor: change Maturity enum to string

* refactor: rename variables to match cms

* refactor: add Title field to RecommendationChunk

* refactor: change title component to header component

* feat: Update Gov UK Packages (#523)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype (#525)

**:sparkles: Features**:

- Add the `step by step navigation` JS and CSS from the `@govuk-prototype-kit/step-by-step` package

**:adhesive_bandage: Fixes**:

- Updates the `Warning component` tag helper, to use the new class to hide the warning text.

* refactor: update interfaces

* test: add temp dummy tests

* refactor: use generic type in interface

* fix: :green_heart: Semver release (#527)

* fix: Remove exec commands

* ⚡: Update Category + Recommendation View Components (#529)

* 💄: Update Tag colour to match changes

- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List

* :zap:: Make recommendations + category views async

* fix: ignore capitalisation

* fix: Web unit tests

* fix: Application tests

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: change test tag name

* refactor: add debug paths

* refactor: remove debug code

* refactor: change Title to string, link SubtopicRecommendation to subtopic

* Feat/accordion view step by step (#528)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* WIP - accordion view component

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype

* feat: Accordion view component added.

* feat: Accordion view component added.

* WIP

* WIP - step by step accordion component

* feat: basic step by step accordion component view

* resolve merge conflict

* Updated JS + CSS files

* feat: Step by step accordion view component added.

* Linted Code in Dfe.PlanTech.Domain/

---------

Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔨 Workflow + SQL script to clear user data from DB (#531)

* fix: add file extension

* feat: Initial script to clear DB

* fix: correct ordering, add signin table, remove *

* chore: move sql script

Otherwise it would run on every environment when deployed and clear the data... Whoops.

* cicd: Add workflow

* feat: disallow production

* TESTING: check inputs works.

* UNDO TEST CHANGES

* fix(?): remove init from BeforeContent

- This simply added the class `js-enabled` to the Body element. This seemed to already be covered by the `initAll()` functionality from the govuk-frontend.js file

* fix: remove step by step navigation js from layout (#533)

* chore: Add GovUK body class script in (#534)

Removed this yesterday in an erroneous attempt to fix the E2E tests. It's necessary for the GOV UK front-end initialisation script though so I've added back in.

* Feat/CodeCleanup (#524)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: Fix SQL script to clear DB (#536)

- For some reason the 'Go' commands weren't working from the workflow (although worked directly on DB). Removed.
- Tweaked CI/CD pipeline a bit to ensure safety

* docs(workflows): 📝 Add workflow changes to docs (#537)

* 📝(workflows) Add new workflows to documentation

- Add information on the `create-tag-release` workflow
- Add information on the `clear-user-data-from-db` workflow
- Moves the information about the `terraform-pr-check` workflow lower down in the document so that it is in alphabetical order

* 📝(workflows) Add TOC

GitHub should automatically have one available but you have to toggle it and this will be immediately visible.

* chore: Packages Update (#540)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

* Package updates

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: remove text match check (#542)

* fix(197631): 🐛 Fix content ordering on page (#541)

* feat: add error catching

* feat: add join table properties

* chore: remove debug lines

* chore: formatting

* feat: add order pagecontent

* feat: order contents

* refactor: cleanup ordering

* tests: Check for order

* tests: Update unit tests

* tests: Update unit tests

* chore: rename to be more descriptive

* Trigger tf doc update (#544)

* Trigger tf doc update

* terraform-docs: automated action

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 💄 css stylings (#546)

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file (#547)

* fix: 💄 css stylings

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file

* feat: Add order column to PageContents (#549)

* cicd: don't lint if dir not had changes

* feat: add order columnt ot able

* fix: remove incorrect changes

* fix: no longer duplicate content (#550)

* fix: no longer duplicate content

Code was basically doing a full outer join, instead of a left join, resulting in content being duplicated multiple times.

* fix: take latest pagecontent if applicable

* fix: remove old css file

---------

Co-authored-by: jimwashbrook <131891854+jimwashbrook@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
jimwashbrook added a commit to DFE-Digital/sts-plan-technology-for-your-school that referenced this issue Mar 19, 2024
* fix(recommendations): 🩹 Remove concrete references from recommendations interfaces

* feat(recommendations): 🗃️ Create initial DB models for recommendations

* feat(recommendations): 🗃️ Schema for recommendation chunks

* feat(recommendations): 🗃️ Recommendation intro schema

* feat(recommendations): 🗃️ Recommendation section schema

* feat(recommendations): 🗃️ Subtopic recommendations schema

* feat(recommendations): 🗃️ Add models to Db Context

- Need to clean this up a bit

* fix: remove go statements, fix copy and paste errors

* fix: missing fields

* fix: undo rename

* refactor(recommendations):
♻️ Move most of configurations to own files

* Linted Code in Dfe.PlanTech.Infrastructure.Data/

* Merge: development into main (#551)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

* tests: Initial programatic E2E tests work (#493)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: add missing comma

* fix: file names, null data

* fix: add relative path

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* tests: Add category and sections to programatic tests (#494)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* fix: remove file

* feaT: Process sections and categories on /self-assessment page

* fix: skip test due to missing data

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* tests: Refactor existing work on dynamic E2E tests (#496)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* refactor: cleanup duplicated code.

* merge development

* chore: delete old dupe files

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* fix: checkout repo

* refactor: remove superseded workflow

* refactor: add relevant triggers to paths and run some in parallel

* refactor: concurrency groups, pass artifact name as variable

* refactor: concurrency group naming

* chore: remove debug code

* tests: Navigate through every question in a sub-topic using Contentful data (#499)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* tests: E2E tests for every possible recommendation page (#500)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* feat: validate every recommendation for every maturity

* feat: validate recommendation pages

* chore: revert testing things

* refactor: delete unused workflow

* chore: update various versions in workflows

* chore: update various versions in custom actions

* tests: Last E2E component tests (#501)

* fix: Test interstitial page content + replace all whitespaces

* chore: remove empty line

* tests: validate warning component + button with entry reference

* chore: remove log command

* feat: inset text validator + slight refactor

* feat: Test nav link

* docs: update components done

* terraform-docs: automated action

* refactor: see what happens if v2 is changed to v3 for terraform setup

* refactor: see what happens if v2 is changed to v3 for terraform setup

* chore: remove todo

* tests: Split up unit tests by page/section (#502)

* tests: Split up unit tests by page/section

* fix: unauthorised pages

* fix: only test unauthorised pages again

* chore: remove unused var

* chore: remove unused before

* chore: remove log command

* chore: remove log command

* Qa view spike (#504)

* test graphiz dependency install in actions

* test graphiz dependency install in actions

* image output upload

* image upload

* test

* correct location for generated images

* output artifact id

* output artifact id

* test building link to artifact

* retrieve data from sql server

* retrieve data from sql server

* list files

* Add visualisation script to loop through the data files to create viz for each section

* call the teams webhook

* typo

* typo

* test using AD connection string

* retest

* Use access token for DB connection

* use dev environment just for testing

* add required variables

* test building sql connection rather than from secret

* Add new question/answer visaulisation workflow

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* wip cleanup (#498)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* chore: upgrade missed version

* refactor: merge ShouldDropMessage and ShouldIgnoreMessage

* Format visualisations (#506)

* Add formatting to visualisations, removes cron schedule from workflow and add as job within matrix deploy

* add -y flag for any prompts

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* refactor: Log which required properties are null in such an event

* chore: remove block comment

* fix: RichText retrieval bug (#507)

- Fixes types in `@RichTextIds` and `idColumn`
- Optimised the querying of the fetching of the `ContentComponentIds` and the `RichTextIds`

* refactor: Check validity of component always

* refactor: remove unused parameter

* refactor: remove unused parameter

* refactor: update dotnet-coverage to latest

* refactor: rollback dotnet-coverage to last known good version

* fix: rollback dotnet-coverage for sonarcloud

* test: update tests

* Feat/cleanup (#512)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* refactor: change valid component logic

* chore: move node unit tests package files to actual folder (#515)

* chore: move node unit tests package files to actual folder

- These were originally in root dir incase we had tests spread out across multiple projects. Which we don't so this just cleans it up.

* fix: test path

Swear I already changed this but apparently not.

* chore: Update all nuget packages. (#510)

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* feat: Convert RichTextContents function into a view (#509)

* feat: refactor function RichTextContents by page into view

* fix: correct type

* Linted Code in Dfe.PlanTech.Domain/

* chore: linting + remove unnecessary query

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* fix: remove broken sql

* chore: small refactor + consistency changes

- Removes unncessary toplevel `SELECT *` statement
- Made every table name + column name in [] to ensure consistency
- Added actual columns to the `SELECT` query for the function

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Feat/cleanup (#517)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* Linted Code in Dfe.PlanTech.Infrastructure.Contentful/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: W.I.P add semantic versioning

* refactor: global install semantic-release

* refactor: install dependencies

* refactor: install dependencies with versions

* feat: use semantic versioning

* refactor: run it on push test

* refactor: tag change

* refactor: create contentful entity classes

* Feat/cleanup (#518)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* refactor: change string to Title component

* fix(sql): 🐛 Fixes a bug where Warning components weren't display text (#521)

* fix(sql): Fixes a bug where Warning components weren't display text

* fix: missing marks and data

* refactor: change Maturity enum to string

* refactor: rename variables to match cms

* refactor: add Title field to RecommendationChunk

* refactor: change title component to header component

* feat: Update Gov UK Packages (#523)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype (#525)

**:sparkles: Features**:

- Add the `step by step navigation` JS and CSS from the `@govuk-prototype-kit/step-by-step` package

**:adhesive_bandage: Fixes**:

- Updates the `Warning component` tag helper, to use the new class to hide the warning text.

* refactor: update interfaces

* test: add temp dummy tests

* refactor: use generic type in interface

* fix: :green_heart: Semver release (#527)

* fix: Remove exec commands

* ⚡: Update Category + Recommendation View Components (#529)

* 💄: Update Tag colour to match changes

- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List

* :zap:: Make recommendations + category views async

* fix: ignore capitalisation

* fix: Web unit tests

* fix: Application tests

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: change test tag name

* refactor: add debug paths

* refactor: remove debug code

* refactor: change Title to string, link SubtopicRecommendation to subtopic

* Feat/accordion view step by step (#528)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* WIP - accordion view component

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype

* feat: Accordion view component added.

* feat: Accordion view component added.

* WIP

* WIP - step by step accordion component

* feat: basic step by step accordion component view

* resolve merge conflict

* Updated JS + CSS files

* feat: Step by step accordion view component added.

* Linted Code in Dfe.PlanTech.Domain/

---------

Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔨 Workflow + SQL script to clear user data from DB (#531)

* fix: add file extension

* feat: Initial script to clear DB

* fix: correct ordering, add signin table, remove *

* chore: move sql script

Otherwise it would run on every environment when deployed and clear the data... Whoops.

* cicd: Add workflow

* feat: disallow production

* TESTING: check inputs works.

* UNDO TEST CHANGES

* fix(?): remove init from BeforeContent

- This simply added the class `js-enabled` to the Body element. This seemed to already be covered by the `initAll()` functionality from the govuk-frontend.js file

* fix: remove step by step navigation js from layout (#533)

* chore: Add GovUK body class script in (#534)

Removed this yesterday in an erroneous attempt to fix the E2E tests. It's necessary for the GOV UK front-end initialisation script though so I've added back in.

* Feat/CodeCleanup (#524)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: Fix SQL script to clear DB (#536)

- For some reason the 'Go' commands weren't working from the workflow (although worked directly on DB). Removed.
- Tweaked CI/CD pipeline a bit to ensure safety

* docs(workflows): 📝 Add workflow changes to docs (#537)

* 📝(workflows) Add new workflows to documentation

- Add information on the `create-tag-release` workflow
- Add information on the `clear-user-data-from-db` workflow
- Moves the information about the `terraform-pr-check` workflow lower down in the document so that it is in alphabetical order

* 📝(workflows) Add TOC

GitHub should automatically have one available but you have to toggle it and this will be immediately visible.

* chore: Packages Update (#540)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

* Package updates

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: remove text match check (#542)

* fix(197631): 🐛 Fix content ordering on page (#541)

* feat: add error catching

* feat: add join table properties

* chore: remove debug lines

* chore: formatting

* feat: add order pagecontent

* feat: order contents

* refactor: cleanup ordering

* tests: Check for order

* tests: Update unit tests

* tests: Update unit tests

* chore: rename to be more descriptive

* Trigger tf doc update (#544)

* Trigger tf doc update

* terraform-docs: automated action

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 💄 css stylings (#546)

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file (#547)

* fix: 💄 css stylings

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file

* feat: Add order column to PageContents (#549)

* cicd: don't lint if dir not had changes

* feat: add order columnt ot able

* fix: remove incorrect changes

* fix: no longer duplicate content (#550)

* fix: no longer duplicate content

Code was basically doing a full outer join, instead of a left join, resulting in content being duplicated multiple times.

* fix: take latest pagecontent if applicable

* fix: remove old css file

---------

Co-authored-by: jimwashbrook <131891854+jimwashbrook@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>

* feat: Read Subtopic Recommendation from DB

* chore: make async

* tests: Initialise Data proj unit tests

* chore: ignore entitytype configs

* fix: revert accidental changes

* feat: add mapping profiles

* fix: return null, don't throw error

* feat: initial db query tests setup

* tests: Initial getsubtopicrec...fromdb tests

* tests: null test

* test: logs message on exception

* feat: Parent recommendation query

* tests: All(?) tests done for GetSubtopicRecommendationQuery

* fix: add page content entity type configuration back

* fix: merge issues

* fix: capitalisation issue

* fix: efcore issues

* feat: majority of the mapping done

* feat: complete (?) recommendations db query

**TODO**:
- [ ] Test once the slug for recommendation intro is in
- [ ] Unit tests

* chore: remove empty line

* Add slug to DB entity

* tests: Add .Data project unit test project

* feat: finish recommendations repostiroy

* chore: remove unused packages

* chore: fix test

* feat: add recommendations view function

* feat: add missing methods, refactory combined query

* fix: use correct repository for contentful

* fix: Add sectionslug back in

- I removed because Intellisense said there were no references to it, because it's awful with .cshtml files. It is being used.

* refactor: improve querying from contentful

* chore: formatting

* fix: query bug, add regions to dbcontecxt

* fix: retrieve everything bar content

* feat: add view to get richtext contents with subrecid

* fix: typoe

* fix: use correct view

* fix: retrieve almost all content

* chore: pass cancellation token

* fix: update recommendationsviewcomponent unit tests

* wip of fixing more tests

* fix: unit test

* tests: add tests for newer function + missing methods

* chore: fix capitalisation to match changes

* chore: fix most code smells

* fix: Correct DB query
Was comparing/querying wrong thing...

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Iain-Stanger <132473051+Iain-Stanger@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
@nick-wall
Copy link

We've used tags for a summary panel in our service to check a teacher's record.
image
They summarise key indicators that are used in hiring decision making. They relate to other content that's elsewhere on the page.

We wanted to test if they confuse users or are needed. They tested well - most users did not particularly notice them on the page. Those that did, found them helpful and liked the clear indicators and colour to compliment the content. Some users screenshot this section to keep as a record of a check they've done. They particularly liked the status showing the absence of something that otherwise wouldn't show on the record - mainly to confirm a teacher does not have restrictions against them.

One thing we found after the update to GOV.UK Frontend v5.0 was that we were restricted in the content we could use. This was because the font size increased and we're using the one-thirds column, so some of the tags wrapped and became coloured boxes instead.
image
In production, we've overridden the width classes so they can be longer. For example, 'induction exempt' is now 'exempt from induction' and stays on one line. But we wouldn't be able to get much more in. Good for being concise but could be limiting if used in a confined container.

@steve-oconnor
Copy link

@nick-wall This is an example of where the guidance on tags can be adjusted to fit the usage so I would say the tags as they are in the Design System don't need any changes.

The new tag designs use the default font size of 19px as uppercase and bold were dropped so widening the column was probably the best option. That or trying to make the tag content more concise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component Goes in the 'Components' section of the Design System
Development

No branches or pull requests