diff --git a/.platform/schema b/.platform/schema
index f11c82a4c..9a037142a 100644
--- a/.platform/schema
+++ b/.platform/schema
@@ -1 +1 @@
-9
\ No newline at end of file
+10
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 21f4f044e..5a69ea947 100644
--- a/composer.json
+++ b/composer.json
@@ -56,7 +56,6 @@
"drupal/potx": "^1.0",
"drupal/purge_users": "^3.1",
"drupal/radioactivity": "^4.0",
- "drupal/raven": "^5.0",
"drupal/redis": "^1.7",
"drupal/remove_http_headers": "^2.0.1",
"drupal/restui": "^1.21",
diff --git a/composer.lock b/composer.lock
index 5fe9778a6..683b38a71 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "a3aa686902754cc000efad66a1cc666d",
+ "content-hash": "1d3ab16ba09ab7e754afd7b71ae122b5",
"packages": [
{
"name": "asm89/stack-cors",
@@ -1037,16 +1037,16 @@
},
{
"name": "consolidation/output-formatters",
- "version": "4.5.0",
+ "version": "4.6.0",
"source": {
"type": "git",
"url": "https://github.com/consolidation/output-formatters.git",
- "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540"
+ "reference": "5fd5656718d7068a02d046f418a7ba873d5abbfe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/7a611b01eb48eb19cd54672339fc08c0985bf540",
- "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540",
+ "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/5fd5656718d7068a02d046f418a7ba873d5abbfe",
+ "reference": "5fd5656718d7068a02d046f418a7ba873d5abbfe",
"shasum": ""
},
"require": {
@@ -1085,9 +1085,9 @@
"description": "Format text by applying transformations provided by plug-in formatters.",
"support": {
"issues": "https://github.com/consolidation/output-formatters/issues",
- "source": "https://github.com/consolidation/output-formatters/tree/4.5.0"
+ "source": "https://github.com/consolidation/output-formatters/tree/4.6.0"
},
- "time": "2024-04-02T15:18:52+00:00"
+ "time": "2024-10-18T14:02:48+00:00"
},
{
"name": "consolidation/robo",
@@ -5482,16 +5482,16 @@
},
{
"name": "drupal/hdbt",
- "version": "6.7.11",
+ "version": "6.7.19",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-hdbt.git",
- "reference": "5f9902895d8690e0167af2b8df37e84798c1ab8b"
+ "reference": "2fadf070e0fee0baf582073856f47f9c62669d17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/5f9902895d8690e0167af2b8df37e84798c1ab8b",
- "reference": "5f9902895d8690e0167af2b8df37e84798c1ab8b",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/2fadf070e0fee0baf582073856f47f9c62669d17",
+ "reference": "2fadf070e0fee0baf582073856f47f9c62669d17",
"shasum": ""
},
"require": {
@@ -5510,10 +5510,10 @@
"Drupal"
],
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.11",
+ "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.7.19",
"issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues"
},
- "time": "2024-10-11T08:54:21+00:00"
+ "time": "2024-10-23T10:00:39+00:00"
},
{
"name": "drupal/hdbt_admin",
@@ -5604,23 +5604,23 @@
},
{
"name": "drupal/helfi_api_base",
- "version": "2.7.9",
+ "version": "2.7.11",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base.git",
- "reference": "189161e8d674072f0a345c45b93dd4c42896b52b"
+ "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/189161e8d674072f0a345c45b93dd4c42896b52b",
- "reference": "189161e8d674072f0a345c45b93dd4c42896b52b",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-api-base/zipball/77ba93f8f9b02bb3e74344e1de0c50caf4d1557c",
+ "reference": "77ba93f8f9b02bb3e74344e1de0c50caf4d1557c",
"shasum": ""
},
"require": {
"drupal/entity": "^1.0",
"drupal/health_check": "^3.0",
"drupal/monolog": "^3.0",
- "drupal/raven": "^4.0 || ^5.0",
+ "drupal/raven": "^5.0 || ^6.0",
"ext-curl": "*",
"firebase/php-jwt": "^6.5",
"php": "^8.1",
@@ -5643,10 +5643,10 @@
],
"description": "Helfi - API Base",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.9",
+ "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/tree/2.7.11",
"issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-api-base/issues"
},
- "time": "2024-10-10T08:24:13+00:00"
+ "time": "2024-10-23T08:01:57+00:00"
},
{
"name": "drupal/helfi_atv",
@@ -5767,12 +5767,12 @@
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-tools.git",
- "reference": "8df65343c4ff937dcf143827e3182f10b8b1b4b6"
+ "reference": "82d8131850bb17d30ac8f72eec0bd5568e4b3640"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/8df65343c4ff937dcf143827e3182f10b8b1b4b6",
- "reference": "8df65343c4ff937dcf143827e3182f10b8b1b4b6",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/82d8131850bb17d30ac8f72eec0bd5568e4b3640",
+ "reference": "82d8131850bb17d30ac8f72eec0bd5568e4b3640",
"shasum": ""
},
"require": {
@@ -5844,7 +5844,7 @@
"source": "https://github.com/City-of-Helsinki/drupal-tools/tree/main",
"issues": "https://github.com/City-of-Helsinki/drupal-tools/issues"
},
- "time": "2024-09-24T07:18:32+00:00"
+ "time": "2024-10-23T08:02:58+00:00"
},
{
"name": "drupal/helfi_formtool_embed",
@@ -5950,16 +5950,16 @@
},
{
"name": "drupal/helfi_platform_config",
- "version": "4.6.15",
+ "version": "4.6.19",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git",
- "reference": "96e619f1399be1140cef46c5dd67cce2a035613e"
+ "reference": "c17835fd4b1629ab55852a857320d6bd102b963d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/96e619f1399be1140cef46c5dd67cce2a035613e",
- "reference": "96e619f1399be1140cef46c5dd67cce2a035613e",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/c17835fd4b1629ab55852a857320d6bd102b963d",
+ "reference": "c17835fd4b1629ab55852a857320d6bd102b963d",
"shasum": ""
},
"require": {
@@ -6078,10 +6078,10 @@
],
"description": "HELfi platform config",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.15",
+ "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.6.19",
"issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues"
},
- "time": "2024-10-14T06:10:36+00:00"
+ "time": "2024-10-22T08:56:56+00:00"
},
{
"name": "drupal/helfi_proxy",
@@ -6983,17 +6983,17 @@
},
{
"name": "drupal/linkit",
- "version": "6.1.5",
+ "version": "6.1.6",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/linkit.git",
- "reference": "6.1.5"
+ "reference": "6.1.6"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/linkit-6.1.5.zip",
- "reference": "6.1.5",
- "shasum": "ce2e0f545e5213874e658a44ed3ef606b80b760d"
+ "url": "https://ftp.drupal.org/files/projects/linkit-6.1.6.zip",
+ "reference": "6.1.6",
+ "shasum": "113d8e569cfb92f8d7feb0a2f7713953c0715e92"
},
"require": {
"drupal/core": "^10.1"
@@ -7005,8 +7005,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "6.1.5",
- "datestamp": "1728680387",
+ "version": "6.1.6",
+ "datestamp": "1729189029",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -8296,20 +8296,20 @@
},
{
"name": "drupal/raven",
- "version": "5.0.19",
+ "version": "6.0.10",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/raven.git",
- "reference": "5.0.19"
+ "reference": "6.0.10"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/raven-5.0.19.zip",
- "reference": "5.0.19",
- "shasum": "7ff86084a389c0740a42aa1d23b5fbcaa1a42d9f"
+ "url": "https://ftp.drupal.org/files/projects/raven-6.0.10.zip",
+ "reference": "6.0.10",
+ "shasum": "df0cce5b87bd76ce933d88afd91ebcd75741d329"
},
"require": {
- "drupal/core": "^10.1 || ^11",
+ "drupal/core": "^10.2 || ^11",
"sentry/sentry": "^4.9"
},
"require-dev": {
@@ -8320,8 +8320,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "5.0.19",
- "datestamp": "1728261182",
+ "version": "6.0.10",
+ "datestamp": "1728022661",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -9516,30 +9516,30 @@
},
{
"name": "drupal/tfa",
- "version": "1.8.0",
+ "version": "1.9.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/tfa.git",
- "reference": "8.x-1.8"
+ "reference": "8.x-1.9"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/tfa-8.x-1.8.zip",
- "reference": "8.x-1.8",
- "shasum": "fda56a048fc15d2d24601981785d3974cd29acd9"
+ "url": "https://ftp.drupal.org/files/projects/tfa-8.x-1.9.zip",
+ "reference": "8.x-1.9",
+ "shasum": "1d42020673e8c29259dd9b6b2a7c1f974e66a415"
},
"require": {
"chillerlan/php-qrcode": "^1.0.9 || ^2.0 || ^3.2 || ^4.0",
"christian-riesen/otp": "^2.1",
- "drupal/core": "^8 || ^9 || ^10",
+ "drupal/core": "^8 || ^9 || ^10 || ^11",
"drupal/encrypt": "~3.0",
"php": ">=7.0"
},
"require-dev": {
"drupal/encrypt": "*",
"drupal/key": "*",
- "drupal/services": "^4 || ^5",
- "drush/drush": "^10 || ^11 || ^12",
+ "drupal/services": "*",
+ "drush/drush": "^10 || ^11 || ^12 || ^13",
"mglaman/phpstan-drupal": "^1.1",
"phpstan/extension-installer": "^1.2",
"phpstan/phpstan": "^1.9",
@@ -9549,8 +9549,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-1.8",
- "datestamp": "1727892298",
+ "version": "8.x-1.9",
+ "datestamp": "1729138391",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -10072,42 +10072,39 @@
},
{
"name": "drupal/views_bulk_operations",
- "version": "4.2.7",
+ "version": "4.3.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/views_bulk_operations.git",
- "reference": "4.2.7"
+ "reference": "4.3.0"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.2.7.zip",
- "reference": "4.2.7",
- "shasum": "25c9fa531ac49664a361fdd2202eec0a6e53bc61"
+ "url": "https://ftp.drupal.org/files/projects/views_bulk_operations-4.3.0.zip",
+ "reference": "4.3.0",
+ "shasum": "887e784e3e41b05d6f8915c223d42f4273ada604"
},
"require": {
- "drupal/core": "^9.4 || ^10 || ^11",
- "php": ">=7.4.0"
+ "drupal/core": "^10.3 || ^11"
+ },
+ "conflict": {
+ "drush/drush": "<12.5.1"
},
"require-dev": {
- "drush/drush": "^12"
+ "drush/drush": "^12 || ^13"
},
"suggest": {
- "drush/drush": "^11 || ^12"
+ "drush/drush": "^12 || ^13"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "4.2.7",
- "datestamp": "1717665214",
+ "version": "4.3.0",
+ "datestamp": "1729513620",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
- },
- "drush": {
- "services": {
- "drush.services.yml": "^10 || ^11"
- }
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
@@ -11647,16 +11644,16 @@
},
{
"name": "guzzlehttp/promises",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
+ "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
- "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
+ "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
"shasum": ""
},
"require": {
@@ -11710,7 +11707,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.3"
+ "source": "https://github.com/guzzle/promises/tree/2.0.4"
},
"funding": [
{
@@ -11726,7 +11723,7 @@
"type": "tidelift"
}
],
- "time": "2024-07-18T10:29:17+00:00"
+ "time": "2024-10-17T10:06:22+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -23647,6 +23644,6 @@
"platform": {
"ext-json": "*"
},
- "platform-dev": [],
+ "platform-dev": {},
"plugin-api-version": "2.6.0"
}
diff --git a/conf/cmi/core.entity_form_display.paragraph.curated_event_list.default.yml b/conf/cmi/core.entity_form_display.paragraph.curated_event_list.default.yml
new file mode 100644
index 000000000..2514fff17
--- /dev/null
+++ b/conf/cmi/core.entity_form_display.paragraph.curated_event_list.default.yml
@@ -0,0 +1,38 @@
+uuid: b5c5ed81-d651-4db2-8d72-a67e7b66390e
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.curated_event_list.field_all_events_link
+ - field.field.paragraph.curated_event_list.field_events
+ - paragraphs.paragraphs_type.curated_event_list
+ module:
+ - link
+_core:
+ default_config_hash: xbLWsjGFnK8aSW5O_r3mVF5bAlCp8J6wP5mGihlXLfU
+id: paragraph.curated_event_list.default
+targetEntityType: paragraph
+bundle: curated_event_list
+mode: default
+content:
+ field_all_events_link:
+ type: link_default
+ weight: 1
+ region: content
+ settings:
+ placeholder_url: ''
+ placeholder_title: ''
+ third_party_settings: { }
+ field_events:
+ type: entity_reference_autocomplete
+ weight: 0
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 5
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ created: true
+ status: true
diff --git a/conf/cmi/core.entity_view_display.linkedevents_event.linkedevents_event.default.yml b/conf/cmi/core.entity_view_display.linkedevents_event.linkedevents_event.default.yml
new file mode 100644
index 000000000..78ab301ee
--- /dev/null
+++ b/conf/cmi/core.entity_view_display.linkedevents_event.linkedevents_event.default.yml
@@ -0,0 +1,75 @@
+uuid: 22363443-8bc6-4b97-980f-6bfb225edb1b
+langcode: en
+status: true
+dependencies:
+ config:
+ - responsive_image.styles.card_teaser
+ module:
+ - datetime
+ - external_entities
+ - imagecache_external
+ - linkit
+_core:
+ default_config_hash: HLUzZHxqtb77OIc2B344fWXiNo5fO78woa0r4KmRGcA
+id: linkedevents_event.linkedevents_event.default
+targetEntityType: linkedevents_event
+bundle: linkedevents_event
+mode: default
+content:
+ end_time:
+ type: datetime_default
+ label: hidden
+ settings:
+ timezone_override: ''
+ format_type: medium
+ third_party_settings: { }
+ weight: 3
+ region: content
+ external_link:
+ type: linkit
+ label: hidden
+ settings:
+ trim_length: 80
+ url_only: false
+ url_plain: false
+ rel: ''
+ target: ''
+ linkit_profile: default
+ third_party_settings: { }
+ weight: 4
+ region: content
+ langcode:
+ type: string_default
+ label: hidden
+ settings: { }
+ third_party_settings: { }
+ weight: 5
+ region: content
+ main_image:
+ type: imagecache_external_responsive_image
+ label: hidden
+ settings:
+ imagecache_external_link: ''
+ imagecache_external_responsive_style: card_teaser
+ third_party_settings: { }
+ weight: 1
+ region: content
+ start_time:
+ type: datetime_default
+ label: hidden
+ settings:
+ timezone_override: ''
+ format_type: medium
+ third_party_settings: { }
+ weight: 2
+ region: content
+ title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ search_api_excerpt: true
diff --git a/conf/cmi/core.entity_view_display.paragraph.curated_event_list.default.yml b/conf/cmi/core.entity_view_display.paragraph.curated_event_list.default.yml
new file mode 100644
index 000000000..966ffdd46
--- /dev/null
+++ b/conf/cmi/core.entity_view_display.paragraph.curated_event_list.default.yml
@@ -0,0 +1,40 @@
+uuid: 313ec60d-d84a-4e82-9ae3-ee3221c0e631
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.curated_event_list.field_all_events_link
+ - field.field.paragraph.curated_event_list.field_events
+ - paragraphs.paragraphs_type.curated_event_list
+ module:
+ - link
+_core:
+ default_config_hash: kSyBcsfddKV9vQJsToglwPaZvKFQSf3GDFPLqkzIfTQ
+id: paragraph.curated_event_list.default
+targetEntityType: paragraph
+bundle: curated_event_list
+mode: default
+content:
+ field_all_events_link:
+ type: link
+ label: hidden
+ settings:
+ trim_length: 80
+ url_only: false
+ url_plain: false
+ rel: ''
+ target: ''
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_events:
+ type: entity_reference_entity_view
+ label: hidden
+ settings:
+ view_mode: default
+ link: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ search_api_excerpt: true
diff --git a/conf/cmi/core.extension.yml b/conf/cmi/core.extension.yml
index c1cc542cb..3794c4255 100644
--- a/conf/cmi/core.extension.yml
+++ b/conf/cmi/core.extension.yml
@@ -49,7 +49,6 @@ module:
flysystem: 0
focal_point: 0
gin_toolbar: 0
- grants_events: 0
grant_applications_content: 0
grant_applications_noscript: 0
grants_admin_applications: 0
@@ -58,6 +57,7 @@ module:
grants_audit_log: 0
grants_budget_components: 0
grants_club_section: 0
+ grants_events: 0
grants_front_banner: 0
grants_industries: 0
grants_logger: 0
@@ -104,6 +104,7 @@ module:
helfi_paragraphs_columns: 0
helfi_paragraphs_contact_card_listing: 0
helfi_paragraphs_content_cards: 0
+ helfi_paragraphs_curated_event_list: 0
helfi_paragraphs_hearings: 0
helfi_paragraphs_hero: 0
helfi_paragraphs_image: 0
diff --git a/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml b/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml
new file mode 100644
index 000000000..f263c5183
--- /dev/null
+++ b/conf/cmi/external_entities.external_entity_type.linkedevents_event.yml
@@ -0,0 +1,38 @@
+uuid: 66fe8cbc-203c-40aa-ac7b-6e0e89470312
+langcode: en
+status: true
+dependencies: { }
+_core:
+ default_config_hash: Ll_0kw3O6gGsRvmdTi7l4K2pwhUrL0yQT4uPcttspmA
+id: linkedevents_event
+label: 'LinkedEvents: Event'
+label_plural: 'LinkedEvents: Events'
+description: 'Event entities from https://api.hel.fi/linkedevents.'
+generate_aliases: false
+read_only: true
+field_mapper_id: jsonpath
+field_mapper_config:
+ field_mappings:
+ id:
+ value: $.id
+ uuid:
+ value: $.id
+ title:
+ value: $.title
+ main_image:
+ uri: '$.images[0].url'
+ title: '$.images[0].alt_text'
+ start_time:
+ value: $.start_time
+ end_time:
+ value: $.end_time
+ external_link:
+ uri: $.external_link
+ title: $.clean_title
+storage_client_id: linkedevents_events
+storage_client_config: null
+persistent_cache_max_age: 0
+annotation_entity_type_id: null
+annotation_bundle_id: null
+annotation_field_name: null
+inherits_annotation_fields: false
diff --git a/conf/cmi/field.field.node.landing_page.field_content.yml b/conf/cmi/field.field.node.landing_page.field_content.yml
index f79d0bf27..54981785d 100644
--- a/conf/cmi/field.field.node.landing_page.field_content.yml
+++ b/conf/cmi/field.field.node.landing_page.field_content.yml
@@ -9,6 +9,7 @@ dependencies:
- paragraphs.paragraphs_type.chart
- paragraphs.paragraphs_type.columns
- paragraphs.paragraphs_type.content_cards
+ - paragraphs.paragraphs_type.curated_event_list
- paragraphs.paragraphs_type.event_list
- paragraphs.paragraphs_type.from_library
- paragraphs.paragraphs_type.front_banner
@@ -65,6 +66,7 @@ settings:
service_list_search: service_list_search
unit_search: unit_search
unit_contact_card: unit_contact_card
+ curated_event_list: curated_event_list
negate: 0
target_bundles_drag_drop:
banner:
@@ -79,6 +81,9 @@ settings:
content_cards:
weight: 1
enabled: true
+ curated_event_list:
+ weight: 15
+ enabled: true
event_list:
weight: 13
enabled: true
diff --git a/conf/cmi/field.field.paragraph.curated_event_list.field_all_events_link.yml b/conf/cmi/field.field.paragraph.curated_event_list.field_all_events_link.yml
new file mode 100644
index 000000000..78d0b9356
--- /dev/null
+++ b/conf/cmi/field.field.paragraph.curated_event_list.field_all_events_link.yml
@@ -0,0 +1,30 @@
+uuid: b144b934-3c5a-4c5b-ae89-b477bfb8367d
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_all_events_link
+ - paragraphs.paragraphs_type.curated_event_list
+ module:
+ - link
+_core:
+ default_config_hash: FfVydFQYnAcPJkSaTbBQoyzqe8k11WrSJ5tSxAt8b1k
+id: paragraph.curated_event_list.field_all_events_link
+field_name: field_all_events_link
+entity_type: paragraph
+bundle: curated_event_list
+label: 'All events link'
+description: "Add a link to the tapahtumat.hel.fi website. You may also filter the events in the event calendar as desired and copy the page's URL.\r\n
\r\nAlso provide a text for the link, eg. View all events."
+required: false
+translatable: false
+default_value:
+ -
+ attributes: { }
+ uri: 'https://tapahtumat.hel.fi'
+ title: 'View all events'
+ options: { }
+default_value_callback: ''
+settings:
+ title: 2
+ link_type: 16
+field_type: link
diff --git a/conf/cmi/field.field.paragraph.curated_event_list.field_events.yml b/conf/cmi/field.field.paragraph.curated_event_list.field_events.yml
new file mode 100644
index 000000000..896f3cdee
--- /dev/null
+++ b/conf/cmi/field.field.paragraph.curated_event_list.field_events.yml
@@ -0,0 +1,28 @@
+uuid: 41acbd4d-63ba-4cb7-919c-d6435553d4a9
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_events
+ - paragraphs.paragraphs_type.curated_event_list
+_core:
+ default_config_hash: XaOHQv-1E_t55GwYhhyvtA03_7mWbdEbmXA3YhGrHiA
+id: paragraph.curated_event_list.field_events
+field_name: field_events
+entity_type: paragraph
+bundle: curated_event_list
+label: Events
+description: "Pick events to display in the list. You may either search event by their name or enter their ID. \r\n
\r\nYou can find the ID of an event on tapahtumat.hel.fi site from the URL of the page. For example, in the url https://tapahtumat.hel.fi/fi/events/helsinki:agiy4m4ida the helsinki:agiy4m4ida part is the ID of the event.\r\n
\r\nThe page will display the top three events. You can arrange the events by dragging. Expired events will be automatically removed from the page."
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:linkedevents_event'
+ handler_settings:
+ target_bundles: null
+ sort:
+ field: _none
+ direction: ASC
+ auto_create: false
+field_type: entity_reference
diff --git a/conf/cmi/field.storage.paragraph.field_all_events_link.yml b/conf/cmi/field.storage.paragraph.field_all_events_link.yml
new file mode 100644
index 000000000..046d3b06b
--- /dev/null
+++ b/conf/cmi/field.storage.paragraph.field_all_events_link.yml
@@ -0,0 +1,21 @@
+uuid: 1dd4d7e6-e3be-490e-9309-e9380e0c33b4
+langcode: en
+status: true
+dependencies:
+ module:
+ - link
+ - paragraphs
+_core:
+ default_config_hash: 7QiTeiuYd-9Za2xvC3WVShDfIhAcgIpMYzIV4PX2NLQ
+id: paragraph.field_all_events_link
+field_name: field_all_events_link
+entity_type: paragraph
+type: link
+settings: { }
+module: link
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/conf/cmi/field.storage.paragraph.field_events.yml b/conf/cmi/field.storage.paragraph.field_events.yml
new file mode 100644
index 000000000..aff4e3ba3
--- /dev/null
+++ b/conf/cmi/field.storage.paragraph.field_events.yml
@@ -0,0 +1,22 @@
+uuid: a381685c-627a-4ba4-8be3-5bb2d2a705bd
+langcode: en
+status: true
+dependencies:
+ module:
+ - external_entities
+ - paragraphs
+_core:
+ default_config_hash: 5xBhIfvn2RSNE7qg7Ep4BljIMo7j78jrEekdHV_eCgo
+id: paragraph.field_events
+field_name: field_events
+entity_type: paragraph
+type: entity_reference
+settings:
+ target_type: linkedevents_event
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/conf/cmi/grants_metadata.settings.yml b/conf/cmi/grants_metadata.settings.yml
index 0fbb803db..1b97e04b4 100644
--- a/conf/cmi/grants_metadata.settings.yml
+++ b/conf/cmi/grants_metadata.settings.yml
@@ -299,7 +299,6 @@ third_party_options:
52: 'Liikunnan erityisavustus 2'
53: 'Kulttuurin ja vapaa-ajan erityisavustus 1'
54: 'Kulttuurin ja vapaa-ajan erityisavustus 2'
-
langcode: en
config_import_ignore:
- 53
diff --git a/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_all_events_link.yml b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_all_events_link.yml
new file mode 100644
index 000000000..baa262793
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_all_events_link.yml
@@ -0,0 +1,5 @@
+label: 'Kaikki tapahtumat -linkki'
+description: "Lisää likki tapahtumat.hel.fi -sivulle. Voit halutessasi tehdä tapahtumakalenterissa haluamasi tapahtumien rajauksen ja kopioida sivun URL-osoitteen.\r\nLisää myös teksti linkille, esimerkiksi. Katso kaikki tapahtumat"
+default_value:
+ -
+ title: 'Katso kaikki tapahtumat'
diff --git a/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_events.yml b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_events.yml
new file mode 100644
index 000000000..65cac6a6e
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.paragraph.curated_event_list.field_events.yml
@@ -0,0 +1,2 @@
+label: Tapahtumat
+description: "Valitse tapahtumat, jotka näytetään listassa. Voit hakea tapahtumaa sen nimellä tai tapahtuman ID:llä.\r\n
\r\nLöydät tapahtuman ID:n tapahtumat.hel.fi-sivun osoitteesta: esimerkiksi osoitteessa https://tapahtumat.hel.fi/fi/events/helsinki:agiy4m4ida kohta helsinki:agiy4m4ida on tapahtuman ID.\r\n
\r\nSivulla näytetään kolme ylintä tapahtumaa. Voit järjestää tapahtumia raahaamalla. Vanhentuneet tapahtumat poistuvat sivulta automaattisesti."
diff --git a/conf/cmi/language/fi/paragraphs.paragraphs_type.curated_event_list.yml b/conf/cmi/language/fi/paragraphs.paragraphs_type.curated_event_list.yml
new file mode 100644
index 000000000..7d8f759d8
--- /dev/null
+++ b/conf/cmi/language/fi/paragraphs.paragraphs_type.curated_event_list.yml
@@ -0,0 +1,2 @@
+label: 'Kuratoitu tapahtumalista'
+description: 'Manuaalisesti ylläpidettävä tapahtumalista tapahtumille Linked Events -rajapinnasta.'
diff --git a/conf/cmi/paragraphs.paragraphs_type.curated_event_list.yml b/conf/cmi/paragraphs.paragraphs_type.curated_event_list.yml
new file mode 100644
index 000000000..b729b022a
--- /dev/null
+++ b/conf/cmi/paragraphs.paragraphs_type.curated_event_list.yml
@@ -0,0 +1,12 @@
+uuid: 5b0c689e-1733-47ff-ba7c-63923e4f2116
+langcode: en
+status: true
+dependencies: { }
+_core:
+ default_config_hash: OdlftsJm7cyT434X7pj43aSTgKo7t5f7eYxG3ShBimY
+id: curated_event_list
+label: 'Curated event list'
+icon_uuid: null
+icon_default: null
+description: 'Event list with curated event picks loaded from Linked Events API.'
+behavior_plugins: { }
diff --git a/conf/cmi/responsive_image.styles.unit_contact_card.yml b/conf/cmi/responsive_image.styles.unit_contact_card.yml
index 3893c27fa..3b41081f1 100644
--- a/conf/cmi/responsive_image.styles.unit_contact_card.yml
+++ b/conf/cmi/responsive_image.styles.unit_contact_card.yml
@@ -3,72 +3,72 @@ langcode: en
status: true
dependencies:
config:
- - image.style.1.5_1120w_746h_LQ
- - image.style.1.5_1200w_800h_LQ
- - image.style.1.5_1298w_866h_LQ
- - image.style.1.5_1470w_980h_LQ
- - image.style.1.5_1854w_1236h_LQ
- - image.style.1.5_560w_373h
- - image.style.1.5_600w_400h
- - image.style.1.5_649w_433h
- - image.style.1.5_735w_490h
- - image.style.1.5_927w_618h
+ - image.style.1.5_1022w_682h_LQ
+ - image.style.1.5_217w_145h
+ - image.style.1.5_264w_176h
+ - image.style.1.5_341w_227h
+ - image.style.1.5_378w_252h
+ - image.style.1.5_434w_290h_LQ
+ - image.style.1.5_511w_341h
+ - image.style.1.5_528w_352h_LQ
+ - image.style.1.5_682w_454h_LQ
+ - image.style.1.5_756w_504h_LQ
module:
- helfi_image_styles
_core:
- default_config_hash: j4r0g0EtcwDoFwxEuB3RGVktSuN6LWThnZBfw2SpG6g
+ default_config_hash: VnnwBYRxRNKSPg5iTbuRmMLcv0ZtU6Tjd4crcbDTeCs
id: unit_contact_card
label: 'Unit Contact Card'
image_style_mappings:
-
image_mapping_type: image_style
- image_mapping: 1.5_649w_433h
+ image_mapping: 1.5_378w_252h
breakpoint_id: helfi_image_styles.xl
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1298w_866h_LQ
+ image_mapping: 1.5_756w_504h_LQ
breakpoint_id: helfi_image_styles.xl
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_600w_400h
+ image_mapping: 1.5_341w_227h
breakpoint_id: helfi_image_styles.l
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1200w_800h_LQ
+ image_mapping: 1.5_682w_454h_LQ
breakpoint_id: helfi_image_styles.l
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_927w_618h
+ image_mapping: 1.5_264w_176h
breakpoint_id: helfi_image_styles.m
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1854w_1236h_LQ
+ image_mapping: 1.5_528w_352h_LQ
breakpoint_id: helfi_image_styles.m
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_735w_490h
+ image_mapping: 1.5_217w_145h
breakpoint_id: helfi_image_styles.s
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1470w_980h_LQ
+ image_mapping: 1.5_434w_290h_LQ
breakpoint_id: helfi_image_styles.s
multiplier: 2x
-
image_mapping_type: image_style
- image_mapping: 1.5_560w_373h
+ image_mapping: 1.5_511w_341h
breakpoint_id: helfi_image_styles.xs
multiplier: 1x
-
image_mapping_type: image_style
- image_mapping: 1.5_1120w_746h_LQ
+ image_mapping: 1.5_1022w_682h_LQ
breakpoint_id: helfi_image_styles.xs
multiplier: 2x
breakpoint_group: helfi_image_styles
-fallback_image_style: 1.5_735w_490h
+fallback_image_style: 1.5_378w_252h
diff --git a/conf/cmi/user.role.anonymous.yml b/conf/cmi/user.role.anonymous.yml
index 3aa3993dd..ad1676447 100644
--- a/conf/cmi/user.role.anonymous.yml
+++ b/conf/cmi/user.role.anonymous.yml
@@ -8,16 +8,18 @@ dependencies:
- helfi_api_base
- helfi_tpr
- media
+ - raven
- system
_core:
default_config_hash: EDyVdaROG6pYzyEct43c01Wq4gpATszrk-qR6gqnQ84
id: anonymous
-label: 'Anonyymi käyttäjä'
+label: 'Anonymous user'
weight: -10
is_admin: false
permissions:
- 'access content'
- 'display eu cookie compliance popup'
+ - 'send javascript errors to sentry'
- 'view helfi_announcements external entity'
- 'view helfi_news external entity'
- 'view helfi_news_groups external entity'
diff --git a/conf/cmi/user.role.authenticated.yml b/conf/cmi/user.role.authenticated.yml
index ecda6e3ca..4fb5f2c75 100644
--- a/conf/cmi/user.role.authenticated.yml
+++ b/conf/cmi/user.role.authenticated.yml
@@ -16,11 +16,13 @@ dependencies:
- helfi_tpr
- media
- node
+ - paragraphs
+ - raven
- system
_core:
default_config_hash: 83Nuup-6oYkkdAsvg3nrR2pBOgtTXEV1JrzpCCLkYLM
id: authenticated
-label: 'Sisäänkirjautunut käyttäjä'
+label: 'Authenticated user'
weight: -9
is_admin: false
permissions:
@@ -29,6 +31,7 @@ permissions:
- 'delete own files'
- 'display eu cookie compliance popup'
- 'edit own address content'
+ - 'send javascript errors to sentry'
- 'use text format full_html'
- 'use text format minimal'
- 'use text format webform_default'
@@ -42,3 +45,4 @@ permissions:
- 'view remote entities'
- 'view tpr_service'
- 'view tpr_unit'
+ - 'view unpublished paragraphs'
diff --git a/docker/openshift/crons/pubsub.sh b/docker/openshift/crons/pubsub.sh
index 8e62c2d68..7589ed46f 100644
--- a/docker/openshift/crons/pubsub.sh
+++ b/docker/openshift/crons/pubsub.sh
@@ -1,10 +1,15 @@
#!/bin/bash
-# echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')"
+if [ -z "$DRUPAL_PUBSUB_VAULT" ]; then
+ echo "PubSub is not configured, exiting."
+ exit 0
+fi
-# while true
-# do
+echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')"
+
+while true
+do
# PubSub process exists with success return code after
# certain number of messages and should then be restarted.
- # drush helfi:azure:pubsub-listen || exit 1
-#done
+ drush helfi:azure:pubsub-listen || exit 1
+done
diff --git a/public/sites/default/settings.php b/public/sites/default/settings.php
index 872d57aab..2f8d1e8e8 100644
--- a/public/sites/default/settings.php
+++ b/public/sites/default/settings.php
@@ -389,6 +389,11 @@ function drupal_get_env(string|array $variables) : mixed {
$default_log_level = getenv('APP_ENV') === 'production' ? 'info' : 'debug';
$settings['helfi_api_base.log_level'] = getenv('LOG_LEVEL') ?: $default_log_level;
+// Turn sentry JS error tracking on if SENTRY_DSN_PUBLIC is defined.
+if (getenv('SENTRY_DSN_PUBLIC')) {
+ $config['raven.settings']['javascript_error_handler'] = TRUE;
+}
+
/**
* Deployment identifier.
*