govuk_publishing_components 9.26.0 → 9.26.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2bc4ea81c6afca132f69c421bad8aba0f4ccf9702ae9e067123a924fc46c2f59
4
- data.tar.gz: dc45f0ac53c4b2d333a344485e689242728dbd837708c5fa26a6abecd3f9319b
3
+ metadata.gz: 5eb88659bbccc009aa73c9269e763c77991316574a3dcd97f19fce6bf628cfc7
4
+ data.tar.gz: da410f0890205197ce0b74334f4f42c120e844ec1742bd26595ca492ce40ca94
5
5
  SHA512:
6
- metadata.gz: 6c82bf497d2fecd01310d5116781130462be995d696041fae6623226368f230b10de534ec0945e15ed2d3a3856cb3414d74ef2d2da99c6ac0422702b766c112b
7
- data.tar.gz: eab2eb21fadcfe73cd29cff6e3601b7c156188daa16b1fea3294245ff7710fe7c7ec5df9427ac91d7b8c8bb091a8d24ecb057ce89deb6bba88e4f76a4eae036f
6
+ metadata.gz: 466e5fb908c79e4f2ed4ee376e1f4ed07ac645c9f34e4036bb96d88c94e8affff78d69649ac89b46888dccca87f8ae23882bea91184f231342f174fe16e5185a
7
+ data.tar.gz: ab9e76586ba05a5916e09e18a13d71a86d88ac07343c500c93e27cbe903904b6c231b84323461b1e16994f4e2c6709c5c773fc971c0d3e39a3d5a4c0a1956e3f
@@ -11,12 +11,12 @@ body: |
11
11
  - Mainstream, which uses related links in the [related navigation component][related_navigation]
12
12
  - Related navigation, which uses legacy taxonomies in the [related navigation component][related_navigation]
13
13
 
14
- It must always used [together with the contextual breadcrumbs][contextual_breadcrumbs].
14
+ It must always be used [with the contextual breadcrumbs component][contextual_breadcrumbs].
15
15
 
16
16
  [preview]: https://govuk-publishing-components.herokuapp.com/contextual-navigation
17
17
  [step-by-step]: /component-guide/step_by_step_nav
18
18
  [related_navigation]: /component-guide/related_navigation
19
- [taxonomy-sidebar]: https://govuk-publishing-components.herokuapp.com/component-guide/taxonomy_sidebar
19
+ [taxonomy-sidebar]: https://govuk-publishing-components.herokuapp.com/component-guide/taxonomy_navigation
20
20
  [contextual_breadcrumbs]: /component-guide/contextual_breadcrumbs
21
21
  accessibility_criteria: |
22
22
  Components called by this component must be accessible
@@ -54,3 +54,17 @@ examples:
54
54
  base_path: "/foo"
55
55
  details: {}
56
56
  schema: :organisation
57
+ organisation_schema_with_related_orgs:
58
+ data:
59
+ content_item:
60
+ title: "Magical Artefacts Agency"
61
+ base_path: "/foo"
62
+ details: {}
63
+ links:
64
+ ordered_parent_organisations:
65
+ - title: "Ministry of Magic"
66
+ base_path: "/ministry-of-magic"
67
+ ordered_child_organisations:
68
+ - title: "Dodgy Wands Commission"
69
+ base_path: "/dodgy-wands-commission"
70
+ schema: :organisation
@@ -92,7 +92,7 @@ examples:
92
92
  path: "/world/argentina/news"
93
93
  no_children:
94
94
  description: |
95
- The child links are usually pulled from rummager. If rummager doesn’t respond we fallback to a sidebar with a taxon link but without any child content links.
95
+ Shows a sidebar with a taxon link but without any child content links.
96
96
  data:
97
97
  items:
98
98
  - title: "School curriculum"
@@ -11,7 +11,6 @@ require "govuk_publishing_components/presenters/content_breadcrumbs_based_on_tax
11
11
  require "govuk_publishing_components/presenters/services"
12
12
  require "govuk_publishing_components/presenters/meta_tags"
13
13
  require "govuk_publishing_components/presenters/taxonomy_navigation"
14
- require "govuk_publishing_components/presenters/rummager_taxonomy_sidebar_links"
15
14
  require "govuk_publishing_components/presenters/curated_taxonomy_sidebar_links"
16
15
  require "govuk_publishing_components/presenters/content_item"
17
16
  require "govuk_publishing_components/presenters/translation_nav_helper"
@@ -18,6 +18,39 @@ module GovukPublishingComponents
18
18
  },
19
19
  "name" => page.title,
20
20
  "description" => page.body
21
+ }.merge(parent_organisations).merge(sub_organisations)
22
+ end
23
+
24
+ private
25
+
26
+ def parent_organisations
27
+ related_organisations("ordered_parent_organisations", "parentOrganization")
28
+ end
29
+
30
+ def sub_organisations
31
+ related_organisations("ordered_child_organisations", "subOrganization")
32
+ end
33
+
34
+ def related_organisations(link_type, schema_name)
35
+ organisations = page.content_item.dig("links", link_type)
36
+
37
+ return {} unless organisations.present?
38
+
39
+ related_orgs = organisations.map do |org|
40
+ page = Page.new(content_item: org)
41
+ linked_org(page.canonical_url)
42
+ end
43
+
44
+ {
45
+ schema_name => related_orgs
46
+ }
47
+ end
48
+
49
+ def linked_org(url)
50
+ {
51
+ "@context" => "http://schema.org",
52
+ "@type" => "GovernmentOrganization",
53
+ "sameAs" => url
21
54
  }
22
55
  end
23
56
  end
@@ -29,22 +29,8 @@ module GovukPublishingComponents
29
29
  end
30
30
  end
31
31
 
32
- def there_are_related_item_overrides?
33
- # TODO: We should check for any external links when we have "new"
34
- # external links being curated in Content Tagger
35
- @content_item.curated_taxonomy_sidebar_links.any?
36
- end
37
-
38
32
  def related_items
39
- related_items_factory.new(@content_item).related_items
40
- end
41
-
42
- def related_items_factory
43
- if there_are_related_item_overrides?
44
- CuratedTaxonomySidebarLinks
45
- else
46
- RummagerTaxonomySidebarLinks
47
- end
33
+ CuratedTaxonomySidebarLinks.new(@content_item).related_items
48
34
  end
49
35
 
50
36
  def collections
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = '9.26.0'.freeze
2
+ VERSION = '9.26.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.26.0
4
+ version: 9.26.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
@@ -598,7 +598,6 @@ files:
598
598
  - lib/govuk_publishing_components/presenters/organisation_logo_helper.rb
599
599
  - lib/govuk_publishing_components/presenters/page_with_step_by_step_navigation.rb
600
600
  - lib/govuk_publishing_components/presenters/related_navigation_helper.rb
601
- - lib/govuk_publishing_components/presenters/rummager_taxonomy_sidebar_links.rb
602
601
  - lib/govuk_publishing_components/presenters/schema_org.rb
603
602
  - lib/govuk_publishing_components/presenters/services.rb
604
603
  - lib/govuk_publishing_components/presenters/step_by_step_nav_helper.rb
@@ -1,62 +0,0 @@
1
- require 'govuk_app_config'
2
-
3
- module GovukPublishingComponents
4
- module Presenters
5
- # @private
6
- class RummagerTaxonomySidebarLinks
7
- def initialize(content_item)
8
- @content_item = content_item
9
- end
10
-
11
- def related_items
12
- parent_taxons = @content_item.parent_taxons
13
- used_related_links = Set.new
14
-
15
- parent_taxons.each_with_index.map do |parent_taxon, index|
16
- related_content = index < 2 ? content_related_to(parent_taxon, used_related_links) : []
17
-
18
- used_related_links.merge(
19
- related_content.map { |content| content[:link] }
20
- )
21
-
22
- {
23
- title: parent_taxon.title,
24
- url: parent_taxon.base_path,
25
- description: parent_taxon.description,
26
- related_content: related_content,
27
- }
28
- end
29
- end
30
-
31
- private
32
-
33
- # This method will fetch content related to content_item, and tagged to taxon. This is a
34
- # temporary method that uses search to achieve this. This behaviour is to be moved into
35
- # the content store
36
- def content_related_to(taxon, used_related_links)
37
- GovukStatsd.time(:taxonomy_sidebar_search_time) do
38
- begin
39
- results = Services.rummager.search(
40
- similar_to: @content_item.base_path,
41
- start: 0,
42
- count: 3,
43
- filter_taxons: [taxon.content_id],
44
- filter_navigation_document_supertype: 'guidance',
45
- reject_link: used_related_links.to_a,
46
- fields: %w[title link],
47
- )['results']
48
-
49
- GovukStatsd.increment(:taxonomy_sidebar_searches)
50
-
51
- results
52
- .map { |result| { title: result['title'], link: result['link'], } }
53
- .sort_by { |result| result[:title] }
54
- rescue StandardError => e
55
- GovukError.notify(e)
56
- []
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end