diff --git a/composer.lock b/composer.lock
index 555e1d1e..5d91bff9 100644
--- a/composer.lock
+++ b/composer.lock
@@ -2263,16 +2263,16 @@
},
{
"name": "drupal/core",
- "version": "10.3.1",
+ "version": "10.3.2",
"source": {
"type": "git",
"url": "https://github.com/drupal/core.git",
- "reference": "d137403a30d4154404e473785f48dfc889d77e23"
+ "reference": "10e79c67a903844bef02a5cf10475d9a8b623e7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/drupal/core/zipball/d137403a30d4154404e473785f48dfc889d77e23",
- "reference": "d137403a30d4154404e473785f48dfc889d77e23",
+ "url": "https://api.github.com/repos/drupal/core/zipball/10e79c67a903844bef02a5cf10475d9a8b623e7a",
+ "reference": "10e79c67a903844bef02a5cf10475d9a8b623e7a",
"shasum": ""
},
"require": {
@@ -2421,13 +2421,13 @@
],
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"support": {
- "source": "https://github.com/drupal/core/tree/10.3.1"
+ "source": "https://github.com/drupal/core/tree/10.3.2"
},
- "time": "2024-07-04T11:33:45+00:00"
+ "time": "2024-08-08T09:23:57+00:00"
},
{
"name": "drupal/core-composer-scaffold",
- "version": "10.3.1",
+ "version": "10.3.2",
"source": {
"type": "git",
"url": "https://github.com/drupal/core-composer-scaffold.git",
@@ -2471,7 +2471,7 @@
"drupal"
],
"support": {
- "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.1"
+ "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.2"
},
"time": "2024-05-11T08:21:39+00:00"
},
@@ -2812,17 +2812,17 @@
},
{
"name": "drupal/easy_breadcrumb",
- "version": "2.0.7",
+ "version": "2.0.8",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/easy_breadcrumb.git",
- "reference": "2.0.7"
+ "reference": "2.0.8"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-2.0.7.zip",
- "reference": "2.0.7",
- "shasum": "a17524ffc2c76bc0aedb04116c3647dc2025e762"
+ "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-2.0.8.zip",
+ "reference": "2.0.8",
+ "shasum": "49bfd9b8b0ec664963d05e360449876745cf2868"
},
"require": {
"drupal/core": "^9.2 || ^10 || ^11"
@@ -2830,8 +2830,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "2.0.7",
- "datestamp": "1719427042",
+ "version": "2.0.8",
+ "datestamp": "1723545040",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -3116,26 +3116,26 @@
},
{
"name": "drupal/entity",
- "version": "1.4.0",
+ "version": "1.5.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/entity.git",
- "reference": "8.x-1.4"
+ "reference": "8.x-1.5"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.4.zip",
- "reference": "8.x-1.4",
- "shasum": "1cf7712318fad144eab106a8fcfcd396aeb5676f"
+ "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.5.zip",
+ "reference": "8.x-1.5",
+ "shasum": "86c0b75c173144aaedde3e3258dc0d3ce11d1a22"
},
"require": {
- "drupal/core": "^9.2|^10.0"
+ "drupal/core": "^10.1 || ^11"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-1.4",
- "datestamp": "1661898023",
+ "version": "8.x-1.5",
+ "datestamp": "1723380062",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -3148,7 +3148,7 @@
],
"authors": [
{
- "name": "Berdir",
+ "name": "berdir",
"homepage": "https://www.drupal.org/user/214652"
},
{
@@ -3185,20 +3185,20 @@
},
{
"name": "drupal/entity_browser",
- "version": "2.10.0",
+ "version": "2.11.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/entity_browser.git",
- "reference": "8.x-2.10"
+ "reference": "8.x-2.11"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.10.zip",
- "reference": "8.x-2.10",
- "shasum": "d52548ea66dc56108c2e211aeaff6e1cc0522e85"
+ "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.11.zip",
+ "reference": "8.x-2.11",
+ "shasum": "4ead3d3f9f6365fbc25cfbd0edcc5e0a9cc52e02"
},
"require": {
- "drupal/core": "^9.5 || ^10"
+ "drupal/core": "^10.2 || ^11"
},
"conflict": {
"drupal/media_entity": "1.*"
@@ -3211,13 +3211,14 @@
"drupal/entityqueue": "^1.0",
"drupal/inline_entity_form": "^1.0@rc",
"drupal/paragraphs": "^1.0",
+ "drupal/search_api": "^1.0",
"drupal/token": "^1.0"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-2.10",
- "datestamp": "1702325310",
+ "version": "8.x-2.11",
+ "datestamp": "1723378138",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -3927,7 +3928,7 @@
"role": "Maintainer"
},
{
- "name": "Rajeshreeputra",
+ "name": "rajeshreeputra",
"homepage": "https://www.drupal.org/user/3418561"
}
],
@@ -4116,16 +4117,16 @@
},
{
"name": "drupal/hdbt",
- "version": "6.5.34",
+ "version": "6.6.3",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-hdbt.git",
- "reference": "519362d9435f1b86da3d432d3bd88bc9f6aeca6c"
+ "reference": "260ed89837be3b1ae9a19248a0e21717b9597885"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/519362d9435f1b86da3d432d3bd88bc9f6aeca6c",
- "reference": "519362d9435f1b86da3d432d3bd88bc9f6aeca6c",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/260ed89837be3b1ae9a19248a0e21717b9597885",
+ "reference": "260ed89837be3b1ae9a19248a0e21717b9597885",
"shasum": ""
},
"require": {
@@ -4143,10 +4144,10 @@
"Drupal"
],
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.5.34",
+ "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.6.3",
"issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues"
},
- "time": "2024-07-19T12:30:27+00:00"
+ "time": "2024-08-14T08:40:02+00:00"
},
{
"name": "drupal/hdbt_admin",
@@ -4326,12 +4327,12 @@
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-tools.git",
- "reference": "cea692973b01424a3c3ffde13b9db48edbcbf6c9"
+ "reference": "eadca37ff757c3de0b1a309d37ddd2c6d4910740"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/cea692973b01424a3c3ffde13b9db48edbcbf6c9",
- "reference": "cea692973b01424a3c3ffde13b9db48edbcbf6c9",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/eadca37ff757c3de0b1a309d37ddd2c6d4910740",
+ "reference": "eadca37ff757c3de0b1a309d37ddd2c6d4910740",
"shasum": ""
},
"require": {
@@ -4403,7 +4404,7 @@
"source": "https://github.com/City-of-Helsinki/drupal-tools/tree/main",
"issues": "https://github.com/City-of-Helsinki/drupal-tools/issues"
},
- "time": "2024-06-12T09:40:19+00:00"
+ "time": "2024-08-12T09:17:00+00:00"
},
{
"name": "drupal/helfi_navigation",
@@ -4441,16 +4442,16 @@
},
{
"name": "drupal/helfi_platform_config",
- "version": "4.4.7",
+ "version": "4.4.8",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git",
- "reference": "fe7cd00be9a4df3d849d1ebb13ed7246ea520fde"
+ "reference": "10ca013c3e13c112eb9827fd1b91ed52833b2712"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/fe7cd00be9a4df3d849d1ebb13ed7246ea520fde",
- "reference": "fe7cd00be9a4df3d849d1ebb13ed7246ea520fde",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/10ca013c3e13c112eb9827fd1b91ed52833b2712",
+ "reference": "10ca013c3e13c112eb9827fd1b91ed52833b2712",
"shasum": ""
},
"require": {
@@ -4539,7 +4540,7 @@
"[#UHF-7008] Admin toolbar and contextual links should always be rendered in the admin language (https://www.drupal.org/project/drupal/issues/2313309)": "https://www.drupal.org/files/issues/2023-12-19/2313309-179.patch",
"[#UHF-9388] Process configuration translation files for custom modules (https://www.drupal.org/i/2845437)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/fd68277191b8f8ec290e53b5fbbae699b2260384/patches/drupal-2845437-process-custom-module-translation-config-10.3.x.patch",
"[#UHF-9690] Allow updating lists when switching from allowed values to allowed values function (https://www.drupal.org/i/2873353)": "https://www.drupal.org/files/issues/2021-05-18/allow-allowed-values-function-update-D9-2873353_1.patch",
- "[#UHF-9952, #UHF-9980] Duplicate
tags (https://www.drupal.org/i/3083786)": "https://www.drupal.org/files/issues/2024-05-14/3083786-duplicate-br-tags-2024-05-14-no-tests.patch"
+ "[#UHF-9952, #UHF-9980] Duplicate
tags (https://www.drupal.org/i/3083786)": "https://www.drupal.org/files/issues/2024-08-08/3083786--mr-8066--10-3-backport.patch"
},
"drupal/default_content": {
"https://www.drupal.org/project/default_content/issues/2640734#comment-14638943": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/main/patches/default_content_2.0.0-alpha2-2640734_manual_imports-e164a354.patch"
@@ -4565,10 +4566,10 @@
],
"description": "HELfi platform config",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.4.7",
+ "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.4.8",
"issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues"
},
- "time": "2024-08-06T05:03:16+00:00"
+ "time": "2024-08-12T09:33:04+00:00"
},
{
"name": "drupal/helfi_proxy",
@@ -5398,20 +5399,20 @@
},
{
"name": "drupal/monolog",
- "version": "3.0.3",
+ "version": "3.0.4",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/monolog.git",
- "reference": "3.0.3"
+ "reference": "3.0.4"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/monolog-3.0.3.zip",
- "reference": "3.0.3",
- "shasum": "99a8d46376f158da841f3fd524a535e37f9c84ad"
+ "url": "https://ftp.drupal.org/files/projects/monolog-3.0.4.zip",
+ "reference": "3.0.4",
+ "shasum": "5e86b3598b826dca767c52bc7e63cb2c049212d3"
},
"require": {
- "drupal/core": "^10",
+ "drupal/core": "^10 || ^11",
"monolog/monolog": "^3.2.0",
"php": "^8.1.0"
},
@@ -5426,8 +5427,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "3.0.3",
- "datestamp": "1718981516",
+ "version": "3.0.4",
+ "datestamp": "1723450250",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -5582,20 +5583,20 @@
},
{
"name": "drupal/paragraphs",
- "version": "1.17.0",
+ "version": "1.18.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/paragraphs.git",
- "reference": "8.x-1.17"
+ "reference": "8.x-1.18"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.17.zip",
- "reference": "8.x-1.17",
- "shasum": "81c05f6a1eb59ab957c9ac97b2e79d6c9837bd72"
+ "url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.18.zip",
+ "reference": "8.x-1.18",
+ "shasum": "594e2937ea5c95fc88b60420590c4d83f5cd71ee"
},
"require": {
- "drupal/core": "^9.3 || ^10",
+ "drupal/core": "^10.2 || ^11",
"drupal/entity_reference_revisions": "~1.3"
},
"require-dev": {
@@ -5603,6 +5604,7 @@
"drupal/diff": "1.x-dev",
"drupal/entity_browser": "2.x-dev",
"drupal/entity_usage": "2.x-dev",
+ "drupal/feeds": "^3",
"drupal/field_group": "3.x-dev",
"drupal/inline_entity_form": "1.x-dev",
"drupal/paragraphs-paragraphs_library": "*",
@@ -5616,8 +5618,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-1.17",
- "datestamp": "1709804220",
+ "version": "8.x-1.18",
+ "datestamp": "1723029144",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -5928,24 +5930,24 @@
},
{
"name": "drupal/raven",
- "version": "5.0.15",
+ "version": "5.0.16",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/raven.git",
- "reference": "5.0.15"
+ "reference": "5.0.16"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/raven-5.0.15.zip",
- "reference": "5.0.15",
- "shasum": "ef3472e1ed7436ac4d453fb371065e8e3f5ed7d5"
+ "url": "https://ftp.drupal.org/files/projects/raven-5.0.16.zip",
+ "reference": "5.0.16",
+ "shasum": "cd4d545b74ad7d22691dd06177a164bc12074201"
},
"require": {
"drupal/core": "^10.1 || ^11",
"sentry/sentry": "^4.4"
},
"require-dev": {
- "drupal/csp": "^1.17",
+ "drupal/csp": "^1.17 || ^2.0",
"drupal/monitoring": "^1.13",
"drupal/seckit": "^2.0",
"drush/drush": "^11.0 || ^12.0 || ^13.0"
@@ -5953,8 +5955,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "5.0.15",
- "datestamp": "1719102344",
+ "version": "5.0.16",
+ "datestamp": "1723001088",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -6166,26 +6168,26 @@
},
{
"name": "drupal/redirect",
- "version": "1.9.0",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/redirect.git",
- "reference": "8.x-1.9"
+ "reference": "8.x-1.10"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.9.zip",
- "reference": "8.x-1.9",
- "shasum": "2987de20f509e9f7cec8a0f81d3a6774f9b0ba3e"
+ "url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.10.zip",
+ "reference": "8.x-1.10",
+ "shasum": "9d72d7e0717dbdea3ab3306c5d6840da5bd3024c"
},
"require": {
- "drupal/core": "^9.2 || ^10"
+ "drupal/core": "^9.2 || ^10 || ^11"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-1.9",
- "datestamp": "1693393506",
+ "version": "8.x-1.10",
+ "datestamp": "1723277641",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -6202,7 +6204,7 @@
"homepage": "https://www.drupal.org/user/214652"
},
{
- "name": "Dave Reid",
+ "name": "dave reid",
"homepage": "https://www.drupal.org/user/53892"
},
{
@@ -11113,16 +11115,16 @@
},
{
"name": "sentry/sentry",
- "version": "4.8.1",
+ "version": "4.9.0",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php.git",
- "reference": "61770efd8b7888e0bdd7d234f0ba67b066e47d04"
+ "reference": "788ec170f51ebb22f2809a1e3f78b19ccd39b70d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/61770efd8b7888e0bdd7d234f0ba67b066e47d04",
- "reference": "61770efd8b7888e0bdd7d234f0ba67b066e47d04",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/788ec170f51ebb22f2809a1e3f78b19ccd39b70d",
+ "reference": "788ec170f51ebb22f2809a1e3f78b19ccd39b70d",
"shasum": ""
},
"require": {
@@ -11186,7 +11188,7 @@
],
"support": {
"issues": "https://github.com/getsentry/sentry-php/issues",
- "source": "https://github.com/getsentry/sentry-php/tree/4.8.1"
+ "source": "https://github.com/getsentry/sentry-php/tree/4.9.0"
},
"funding": [
{
@@ -11198,7 +11200,7 @@
"type": "custom"
}
],
- "time": "2024-07-16T13:45:27+00:00"
+ "time": "2024-08-08T14:40:50+00:00"
},
{
"name": "stomp-php/stomp-php",
@@ -14233,16 +14235,16 @@
},
{
"name": "twig/twig",
- "version": "v3.10.3",
+ "version": "v3.11.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "67f29781ffafa520b0bbfbd8384674b42db04572"
+ "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572",
- "reference": "67f29781ffafa520b0bbfbd8384674b42db04572",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/e80fb8ebba85c7341a97a9ebf825d7fd4b77708d",
+ "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d",
"shasum": ""
},
"require": {
@@ -14250,7 +14252,8 @@
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3",
- "symfony/polyfill-php80": "^1.22"
+ "symfony/polyfill-php80": "^1.22",
+ "symfony/polyfill-php81": "^1.29"
},
"require-dev": {
"psr/container": "^1.0|^2.0",
@@ -14296,7 +14299,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.10.3"
+ "source": "https://github.com/twigphp/Twig/tree/v3.11.0"
},
"funding": [
{
@@ -14308,7 +14311,7 @@
"type": "tidelift"
}
],
- "time": "2024-05-16T10:04:27+00:00"
+ "time": "2024-08-08T16:15:16+00:00"
},
{
"name": "twistor/flysystem-stream-wrapper",
diff --git a/conf/cmi/block.block.globalannouncement.yml b/conf/cmi/block.block.globalannouncement.yml
deleted file mode 100644
index afffb0c1..00000000
--- a/conf/cmi/block.block.globalannouncement.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-uuid: a2ab2a75-460e-4906-8c66-b4a3ccf71c59
-langcode: en
-status: true
-dependencies:
- module:
- - helfi_global_announcement
- theme:
- - hdbt
-id: globalannouncement
-theme: hdbt
-region: before_content
-weight: -14
-provider: helfi_global_announcement
-plugin: global_announcements
-settings:
- id: global_announcements
- label: 'Global announcement'
- label_display: ''
- provider: helfi_global_announcement
-visibility: { }
diff --git a/conf/cmi/block.block.surveys.yml b/conf/cmi/block.block.surveys.yml
new file mode 100644
index 00000000..a72489dd
--- /dev/null
+++ b/conf/cmi/block.block.surveys.yml
@@ -0,0 +1,21 @@
+uuid: 3649513f-cc05-49e3-8647-2eda8b577582
+langcode: en
+status: true
+dependencies:
+ module:
+ - helfi_etusivu_entities
+ theme:
+ - hdbt
+id: surveys
+theme: hdbt
+region: before_content
+weight: -15
+provider: helfi_node_survey
+plugin: surveys
+settings:
+ id: surveys
+ label: Surveys
+ label_display: ''
+ provider: helfi_node_survey
+ use_remote_entities: true
+visibility: { }
diff --git a/conf/cmi/core.base_field_override.node.survey.promote.yml b/conf/cmi/core.base_field_override.node.survey.promote.yml
new file mode 100644
index 00000000..a53be779
--- /dev/null
+++ b/conf/cmi/core.base_field_override.node.survey.promote.yml
@@ -0,0 +1,24 @@
+uuid: 0f67ac70-571e-43da-ae3f-eca271ee541a
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.survey
+_core:
+ default_config_hash: jLPewbi-29Z_ekJ8NNa2EQwOjxhSBxFnXYwtX-8jx68
+id: node.survey.promote
+field_name: promote
+entity_type: node
+bundle: survey
+label: 'Promoted to front page'
+description: ''
+required: false
+translatable: true
+default_value:
+ -
+ value: 0
+default_value_callback: ''
+settings:
+ on_label: 'On'
+ off_label: 'Off'
+field_type: boolean
diff --git a/conf/cmi/core.base_field_override.node.survey.status.yml b/conf/cmi/core.base_field_override.node.survey.status.yml
new file mode 100644
index 00000000..81672353
--- /dev/null
+++ b/conf/cmi/core.base_field_override.node.survey.status.yml
@@ -0,0 +1,24 @@
+uuid: 66c7c3ae-fd35-4cd8-a4c2-54bc24cf5895
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.survey
+_core:
+ default_config_hash: G0OKH2o0P5SCpFGpXz9jp9Yuxkm746qvgyc0FbBteRA
+id: node.survey.status
+field_name: status
+entity_type: node
+bundle: survey
+label: Published
+description: ''
+required: false
+translatable: true
+default_value:
+ -
+ value: 0
+default_value_callback: ''
+settings:
+ on_label: 'On'
+ off_label: 'Off'
+field_type: boolean
diff --git a/conf/cmi/core.base_field_override.node.survey.title.yml b/conf/cmi/core.base_field_override.node.survey.title.yml
new file mode 100644
index 00000000..95196bcd
--- /dev/null
+++ b/conf/cmi/core.base_field_override.node.survey.title.yml
@@ -0,0 +1,20 @@
+uuid: 12bf02be-360b-498c-9891-fe06f94408b8
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.survey
+_core:
+ default_config_hash: Opcalm7vjcrzzKeswLKzQkVtm9qRopCjMHYKtVTXBE4
+id: node.survey.title
+field_name: title
+entity_type: node
+bundle: survey
+label: 'Survey title'
+description: ''
+required: true
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/conf/cmi/core.entity_form_display.node.survey.default.yml b/conf/cmi/core.entity_form_display.node.survey.default.yml
new file mode 100644
index 00000000..e30e4576
--- /dev/null
+++ b/conf/cmi/core.entity_form_display.node.survey.default.yml
@@ -0,0 +1,134 @@
+uuid: 2dea284e-6cc0-4e34-9d2f-37baa7317502
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.survey.body
+ - field.field.node.survey.field_survey_content_pages
+ - field.field.node.survey.field_survey_link
+ - node.type.survey
+ module:
+ - hdbt_admin_tools
+ - link
+ - path
+ - publication_date
+ - scheduler
+ - select2
+ - text
+_core:
+ default_config_hash: SpA7JjzzI-4nAK5XY8JDkYoTn3X7NpV6TqEAFpFP5tY
+id: node.survey.default
+targetEntityType: node
+bundle: survey
+mode: default
+content:
+ body:
+ type: text_textarea_with_summary
+ weight: 18
+ region: content
+ settings:
+ rows: 9
+ summary_rows: 3
+ placeholder: ''
+ show_summary: false
+ third_party_settings: { }
+ created:
+ type: datetime_timestamp
+ weight: 3
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_survey_content_pages:
+ type: select2_entity_reference
+ weight: 14
+ region: content
+ settings:
+ width: 100%
+ autocomplete: true
+ match_operator: CONTAINS
+ match_limit: 20
+ third_party_settings: { }
+ field_survey_link:
+ type: link_default
+ weight: 19
+ region: content
+ settings:
+ placeholder_url: ''
+ placeholder_title: ''
+ third_party_settings: { }
+ langcode:
+ type: language_select
+ weight: 1
+ region: content
+ settings:
+ include_locked: false
+ third_party_settings: { }
+ path:
+ type: path
+ weight: 6
+ region: content
+ settings: { }
+ third_party_settings: { }
+ publish_on:
+ type: datetime_timestamp_no_default
+ weight: 7
+ region: content
+ settings: { }
+ third_party_settings: { }
+ published_at:
+ type: publication_date_timestamp
+ weight: 10
+ region: content
+ settings: { }
+ third_party_settings: { }
+ scheduler_settings:
+ weight: 5
+ region: content
+ settings: { }
+ third_party_settings: { }
+ simple_sitemap:
+ weight: 12
+ region: content
+ settings: { }
+ third_party_settings: { }
+ status:
+ type: boolean_checkbox
+ weight: 9
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ title:
+ type: string_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ translation:
+ weight: 4
+ region: content
+ settings: { }
+ third_party_settings: { }
+ uid:
+ type: entity_reference_autocomplete
+ weight: 2
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ unpublish_on:
+ type: datetime_timestamp_no_default
+ weight: 8
+ region: content
+ settings: { }
+ third_party_settings: { }
+hidden:
+ hide_sidebar_navigation: true
+ promote: true
+ sticky: true
+ url_redirects: true
diff --git a/conf/cmi/core.entity_view_display.node.survey.default.yml b/conf/cmi/core.entity_view_display.node.survey.default.yml
new file mode 100644
index 00000000..cb454009
--- /dev/null
+++ b/conf/cmi/core.entity_view_display.node.survey.default.yml
@@ -0,0 +1,49 @@
+uuid: 1dab22c0-e5e8-487c-9050-9ba480532d07
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.survey.body
+ - field.field.node.survey.field_survey_content_pages
+ - field.field.node.survey.field_survey_link
+ - node.type.survey
+ module:
+ - link
+ - text
+ - user
+_core:
+ default_config_hash: VYCHZ7byxSgOpSFDqb2ad2yb3M5fWI43qAJbGREtaSQ
+id: node.survey.default
+targetEntityType: node
+bundle: survey
+mode: default
+content:
+ body:
+ type: text_default
+ label: hidden
+ settings: { }
+ third_party_settings: { }
+ weight: 2
+ region: content
+ field_survey_link:
+ type: link
+ label: hidden
+ settings:
+ trim_length: 80
+ url_only: false
+ url_plain: false
+ rel: ''
+ target: ''
+ third_party_settings: { }
+ weight: 3
+ region: content
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ field_survey_content_pages: true
+ langcode: true
+ published_at: true
+ toc_enabled: true
diff --git a/conf/cmi/core.entity_view_display.node.survey.teaser.yml b/conf/cmi/core.entity_view_display.node.survey.teaser.yml
new file mode 100644
index 00000000..c59b3116
--- /dev/null
+++ b/conf/cmi/core.entity_view_display.node.survey.teaser.yml
@@ -0,0 +1,39 @@
+uuid: 394e2865-baf3-4603-9d97-57f59e49f5a6
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.node.teaser
+ - field.field.node.survey.body
+ - field.field.node.survey.field_survey_content_pages
+ - field.field.node.survey.field_survey_link
+ - node.type.survey
+ module:
+ - text
+ - user
+_core:
+ default_config_hash: RFZBuDFa3w1RzcoB4xT4zbJFvgZSCmJDaIfZUOpYzXI
+id: node.survey.teaser
+targetEntityType: node
+bundle: survey
+mode: teaser
+content:
+ body:
+ type: text_summary_or_trimmed
+ label: hidden
+ settings:
+ trim_length: 600
+ third_party_settings: { }
+ weight: 101
+ region: content
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 100
+ region: content
+hidden:
+ field_survey_content_pages: true
+ field_survey_link: true
+ langcode: true
+ published_at: true
+ toc_enabled: true
diff --git a/conf/cmi/core.extension.yml b/conf/cmi/core.extension.yml
index dbd12238..6ec5407e 100644
--- a/conf/cmi/core.extension.yml
+++ b/conf/cmi/core.extension.yml
@@ -44,8 +44,8 @@ module:
helfi_azure_fs: 0
helfi_base_content: 0
helfi_ckeditor: 0
+ helfi_etusivu_entities: 0
helfi_eu_cookie_compliance: 0
- helfi_global_announcement: 0
helfi_image_styles: 0
helfi_media: 0
helfi_media_chart: 0
@@ -54,6 +54,7 @@ module:
helfi_node_announcement: 0
helfi_node_landing_page: 0
helfi_node_page: 0
+ helfi_node_survey: 0
helfi_paragraphs_accordion: 0
helfi_paragraphs_banner: 0
helfi_paragraphs_chart: 0
diff --git a/conf/cmi/easy_breadcrumb.settings.yml b/conf/cmi/easy_breadcrumb.settings.yml
index ab96ec5c..3a38052d 100644
--- a/conf/cmi/easy_breadcrumb.settings.yml
+++ b/conf/cmi/easy_breadcrumb.settings.yml
@@ -30,7 +30,7 @@ capitalizator_forced_words_first_letter: false
follow_redirects: false
limit_segment_display: false
segment_display_limit: null
+segment_display_minimum: 1
truncator_mode: false
truncator_length: 100
truncator_dots: true
-segment_display_minimum: 1
diff --git a/conf/cmi/encrypt.profile.real_aes.yml b/conf/cmi/encrypt.profile.real_aes.yml
index 94b4ba51..c9887b01 100644
--- a/conf/cmi/encrypt.profile.real_aes.yml
+++ b/conf/cmi/encrypt.profile.real_aes.yml
@@ -11,5 +11,5 @@ _core:
id: real_aes
label: 'Real AES'
encryption_method: real_aes
-encryption_key: tfa
encryption_method_configuration: { }
+encryption_key: tfa
diff --git a/conf/cmi/external_entities.external_entity_type.helfi_announcements.yml b/conf/cmi/external_entities.external_entity_type.helfi_announcements.yml
index aa0c0e9a..8bd8bfb7 100644
--- a/conf/cmi/external_entities.external_entity_type.helfi_announcements.yml
+++ b/conf/cmi/external_entities.external_entity_type.helfi_announcements.yml
@@ -1,15 +1,15 @@
-uuid: 02fe28a4-e609-4edf-994a-212e10412820
+uuid: 072df4c4-3de5-44f9-bd4f-c1d09006ce88
langcode: en
status: true
dependencies: { }
_core:
- default_config_hash: znut8SNGQRsGO4_fUxjvl_SIZqbb0T7hsv98bRKxcM8
+ default_config_hash: klULx3zqlYgz7OOfeGsjBYHQmFp8V6_aMlFUYaOQRmA
id: helfi_announcements
label: 'Helfi: Announcements'
label_plural: 'Helfi: Announcements'
description: ''
-read_only: true
generate_aliases: null
+read_only: true
field_mapper_id: jsonpath
field_mapper_config:
field_mappings:
diff --git a/conf/cmi/external_entities.external_entity_type.helfi_surveys.yml b/conf/cmi/external_entities.external_entity_type.helfi_surveys.yml
new file mode 100644
index 00000000..2a9fc569
--- /dev/null
+++ b/conf/cmi/external_entities.external_entity_type.helfi_surveys.yml
@@ -0,0 +1,42 @@
+uuid: be631905-d77b-418a-890e-b04fa3ed3e22
+langcode: en
+status: true
+dependencies: { }
+_core:
+ default_config_hash: _EBh68cyUNEhZdqfsN5IEH5ieC-ND8JOMk5t_uhXdJc
+id: helfi_surveys
+label: 'Helfi: Survey'
+label_plural: 'Helfi: Surveys'
+description: ''
+generate_aliases: null
+read_only: true
+field_mapper_id: jsonpath
+field_mapper_config:
+ field_mappings:
+ id:
+ value: $.id
+ uuid:
+ value: $.id
+ title:
+ value: '$.attributes["title"]'
+ published_at:
+ value: '$.attributes["published_at"]'
+ unpublish_on:
+ value: '$.attributes["unpublish_on"]'
+ langcode:
+ value: '$.attributes["langcode"]'
+ body:
+ value: '$.attributes["body"]["value"]'
+ status:
+ value: '$.attributes["status"]'
+ survey_link_text:
+ value: '$.attributes["field_survey_link"]["title"]'
+ survey_link_url:
+ value: '$.attributes["field_survey_link"]["uri"]'
+storage_client_id: helfi_surveys
+storage_client_config: { }
+persistent_cache_max_age: -1
+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.survey.body.yml b/conf/cmi/field.field.node.survey.body.yml
new file mode 100644
index 00000000..b2aa1d75
--- /dev/null
+++ b/conf/cmi/field.field.node.survey.body.yml
@@ -0,0 +1,31 @@
+uuid: d1b45349-7c63-4ac3-b7b3-563eeb88f38c
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.body
+ - node.type.survey
+ module:
+ - allowed_formats
+ - text
+third_party_settings:
+ allowed_formats:
+ allowed_formats:
+ - minimal
+_core:
+ default_config_hash: Xb4eSRbowaisX2qbRnKXbJKAH74H8t2-NtJaJ0Kz7hk
+id: node.survey.body
+field_name: body
+entity_type: node
+bundle: survey
+label: Body
+description: ''
+required: true
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings:
+ display_summary: false
+ required_summary: false
+ allowed_formats: { }
+field_type: text_with_summary
diff --git a/conf/cmi/field.field.node.survey.field_survey_content_pages.yml b/conf/cmi/field.field.node.survey.field_survey_content_pages.yml
new file mode 100644
index 00000000..f97fd106
--- /dev/null
+++ b/conf/cmi/field.field.node.survey.field_survey_content_pages.yml
@@ -0,0 +1,33 @@
+uuid: 9cb9a071-2d67-43d0-a8e3-6e2b7142ee17
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_survey_content_pages
+ - node.type.landing_page
+ - node.type.page
+ - node.type.survey
+_core:
+ default_config_hash: c72PoW8HQ-owmgvYD0syJeWNuTfkdhC88uY2a49GZSk
+id: node.survey.field_survey_content_pages
+field_name: field_survey_content_pages
+entity_type: node
+bundle: survey
+label: 'Show on content pages'
+description: 'Shown on all pages if left empty.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:node'
+ handler_settings:
+ target_bundles:
+ page: page
+ landing_page: landing_page
+ sort:
+ field: title
+ direction: ASC
+ auto_create: false
+ auto_create_bundle: page
+field_type: entity_reference
diff --git a/conf/cmi/field.field.node.survey.field_survey_link.yml b/conf/cmi/field.field.node.survey.field_survey_link.yml
new file mode 100644
index 00000000..b48a1f27
--- /dev/null
+++ b/conf/cmi/field.field.node.survey.field_survey_link.yml
@@ -0,0 +1,25 @@
+uuid: 21a43a79-869a-4758-b64a-b665aec0561a
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_survey_link
+ - node.type.survey
+ module:
+ - link
+_core:
+ default_config_hash: UaxdyCI0GV4wNetzWNnSTLZy7bnNtgHjMypvOl28HYo
+id: node.survey.field_survey_link
+field_name: field_survey_link
+entity_type: node
+bundle: survey
+label: Link
+description: ''
+required: true
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings:
+ title: 0
+ link_type: 17
+field_type: link
diff --git a/conf/cmi/field.storage.node.field_survey_content_pages.yml b/conf/cmi/field.storage.node.field_survey_content_pages.yml
new file mode 100644
index 00000000..83208819
--- /dev/null
+++ b/conf/cmi/field.storage.node.field_survey_content_pages.yml
@@ -0,0 +1,21 @@
+uuid: 3a26e002-c1e2-4840-bb59-f29aea3489ea
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+_core:
+ default_config_hash: 4bzZX7tPEXAGP71HWAPeByOaqILWZoXmtBCjFWjrm2s
+id: node.field_survey_content_pages
+field_name: field_survey_content_pages
+entity_type: node
+type: entity_reference
+settings:
+ target_type: node
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/conf/cmi/field.storage.node.field_survey_link.yml b/conf/cmi/field.storage.node.field_survey_link.yml
new file mode 100644
index 00000000..2a642231
--- /dev/null
+++ b/conf/cmi/field.storage.node.field_survey_link.yml
@@ -0,0 +1,21 @@
+uuid: e9b298a6-f958-41b6-9c26-5fd7868e4120
+langcode: en
+status: true
+dependencies:
+ module:
+ - link
+ - node
+_core:
+ default_config_hash: xr7_yR6YfdO7eML9XROtXbIDgHPw-h3zTdK2Ln6iz7g
+id: node.field_survey_link
+field_name: field_survey_link
+entity_type: node
+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/language.content_settings.node.survey.yml b/conf/cmi/language.content_settings.node.survey.yml
new file mode 100644
index 00000000..58cd44e5
--- /dev/null
+++ b/conf/cmi/language.content_settings.node.survey.yml
@@ -0,0 +1,18 @@
+uuid: c10c6c36-eccd-4664-bf08-bc58654eac6d
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.survey
+ module:
+ - content_translation
+third_party_settings:
+ content_translation:
+ enabled: true
+_core:
+ default_config_hash: k-YN8N-ocbCYxMId9l0JressnpIaJXCvHbUY265HLpU
+id: node.survey
+target_entity_type_id: node
+target_bundle: survey
+default_langcode: fi
+language_alterable: true
diff --git a/conf/cmi/language/fi/core.base_field_override.node.survey.promote.yml b/conf/cmi/language/fi/core.base_field_override.node.survey.promote.yml
new file mode 100644
index 00000000..a29359aa
--- /dev/null
+++ b/conf/cmi/language/fi/core.base_field_override.node.survey.promote.yml
@@ -0,0 +1,4 @@
+label: 'Näytetään etusivulla'
+settings:
+ on_label: Kyllä
+ off_label: Ei
diff --git a/conf/cmi/language/fi/core.base_field_override.node.survey.status.yml b/conf/cmi/language/fi/core.base_field_override.node.survey.status.yml
new file mode 100644
index 00000000..b939375b
--- /dev/null
+++ b/conf/cmi/language/fi/core.base_field_override.node.survey.status.yml
@@ -0,0 +1,4 @@
+label: Julkaistu
+settings:
+ on_label: Kyllä
+ off_label: Ei
diff --git a/conf/cmi/language/fi/core.base_field_override.node.survey.title.yml b/conf/cmi/language/fi/core.base_field_override.node.survey.title.yml
new file mode 100644
index 00000000..93342164
--- /dev/null
+++ b/conf/cmi/language/fi/core.base_field_override.node.survey.title.yml
@@ -0,0 +1 @@
+label: 'Kyselyn otsikko'
diff --git a/conf/cmi/language/fi/field.field.node.announcement.field_publish_externally.yml b/conf/cmi/language/fi/field.field.node.announcement.field_publish_externally.yml
new file mode 100644
index 00000000..050d38a5
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.node.announcement.field_publish_externally.yml
@@ -0,0 +1,4 @@
+label: 'Julkaise ulkoisella sivustolla '
+settings:
+ on_label: Päällä
+ off_label: 'Pois päältä'
diff --git a/conf/cmi/language/fi/field.field.node.survey.body.yml b/conf/cmi/language/fi/field.field.node.survey.body.yml
new file mode 100644
index 00000000..9d61cbc9
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.node.survey.body.yml
@@ -0,0 +1 @@
+label: Sisältö
diff --git a/conf/cmi/language/fi/field.field.node.survey.field_survey_content_pages.yml b/conf/cmi/language/fi/field.field.node.survey.field_survey_content_pages.yml
new file mode 100644
index 00000000..6b1adffa
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.node.survey.field_survey_content_pages.yml
@@ -0,0 +1,2 @@
+label: 'Näytä sisältösivuilla'
+description: 'Näytetään kaikilla sivuilla jos jätetään tyhjäksi.'
diff --git a/conf/cmi/language/fi/field.field.node.survey.field_survey_link.yml b/conf/cmi/language/fi/field.field.node.survey.field_survey_link.yml
new file mode 100644
index 00000000..d060ac6b
--- /dev/null
+++ b/conf/cmi/language/fi/field.field.node.survey.field_survey_link.yml
@@ -0,0 +1 @@
+label: Linkki
diff --git a/conf/cmi/language/fi/key.key.tfa.yml b/conf/cmi/language/fi/key.key.tfa.yml
new file mode 100644
index 00000000..89839366
--- /dev/null
+++ b/conf/cmi/language/fi/key.key.tfa.yml
@@ -0,0 +1 @@
+label: 'Kaksivaiheinen tunnistautuminen (2FA)'
diff --git a/conf/cmi/language/fi/node.type.survey.yml b/conf/cmi/language/fi/node.type.survey.yml
new file mode 100644
index 00000000..d9e4a950
--- /dev/null
+++ b/conf/cmi/language/fi/node.type.survey.yml
@@ -0,0 +1,2 @@
+name: Kysely
+description: 'Tämän sisältötyypin avulla voidaan näyttää kyselyitä eri sivuilla.'
diff --git a/conf/cmi/language/fi/tfa.settings.yml b/conf/cmi/language/fi/tfa.settings.yml
new file mode 100644
index 00000000..f6098159
--- /dev/null
+++ b/conf/cmi/language/fi/tfa.settings.yml
@@ -0,0 +1 @@
+help_text: 'Ota yhteyttä tukeen palauttaaksesi tunnuksesi käyttöön'
diff --git a/conf/cmi/language/sv/core.base_field_override.node.survey.promote.yml b/conf/cmi/language/sv/core.base_field_override.node.survey.promote.yml
new file mode 100644
index 00000000..1c731d26
--- /dev/null
+++ b/conf/cmi/language/sv/core.base_field_override.node.survey.promote.yml
@@ -0,0 +1,4 @@
+label: 'Visas på startsidan'
+settings:
+ on_label: Ja
+ off_label: Nej
diff --git a/conf/cmi/language/sv/core.base_field_override.node.survey.status.yml b/conf/cmi/language/sv/core.base_field_override.node.survey.status.yml
new file mode 100644
index 00000000..97ac71a7
--- /dev/null
+++ b/conf/cmi/language/sv/core.base_field_override.node.survey.status.yml
@@ -0,0 +1,4 @@
+label: Publicerad
+settings:
+ on_label: Ja
+ off_label: Nej
diff --git a/conf/cmi/language/sv/field.field.node.announcement.field_publish_externally.yml b/conf/cmi/language/sv/field.field.node.announcement.field_publish_externally.yml
new file mode 100644
index 00000000..83c1e838
--- /dev/null
+++ b/conf/cmi/language/sv/field.field.node.announcement.field_publish_externally.yml
@@ -0,0 +1,3 @@
+settings:
+ on_label: Ja
+ off_label: Nej
diff --git a/conf/cmi/language/sv/field.field.node.survey.body.yml b/conf/cmi/language/sv/field.field.node.survey.body.yml
new file mode 100644
index 00000000..7e34baf6
--- /dev/null
+++ b/conf/cmi/language/sv/field.field.node.survey.body.yml
@@ -0,0 +1 @@
+label: Body
diff --git a/conf/cmi/language/sv/field.field.node.survey.field_survey_link.yml b/conf/cmi/language/sv/field.field.node.survey.field_survey_link.yml
new file mode 100644
index 00000000..cb5c2337
--- /dev/null
+++ b/conf/cmi/language/sv/field.field.node.survey.field_survey_link.yml
@@ -0,0 +1 @@
+label: Länk
diff --git a/conf/cmi/language/sv/field.field.paragraph.service_list.field_service_list_services.yml b/conf/cmi/language/sv/field.field.paragraph.service_list.field_service_list_services.yml
new file mode 100644
index 00000000..41641033
--- /dev/null
+++ b/conf/cmi/language/sv/field.field.paragraph.service_list.field_service_list_services.yml
@@ -0,0 +1 @@
+label: Tjänster
diff --git a/conf/cmi/language/sv/tfa.settings.yml b/conf/cmi/language/sv/tfa.settings.yml
new file mode 100644
index 00000000..9dcd2542
--- /dev/null
+++ b/conf/cmi/language/sv/tfa.settings.yml
@@ -0,0 +1,26 @@
+help_text: 'Kontakta supporten för att återställa din åtkomst'
+mail:
+ tfa_enabled_configuration:
+ subject: 'Ditt [site:name]-konto har nu tvåfaktorsautentisering'
+ body: |-
+ [user:display-name],
+
+ Tack för att du konfigurerade tvåfaktorsautentisering på ditt [site:name]konto!
+
+ Denna extra nivå av säkerhet hjälper till att säkerställa att enbart du kan logga in på ditt konto.
+
+ Om du någonsin förlorar den enhet som du konfigurerat detta med så bör du genast ta bort kopplingen till detta konto.
+
+ --
+ [site:name] teamet
+ tfa_disabled_configuration:
+ subject: 'Ditt [site:name] konto har inte längre tvåfaktorsautentisering'
+ body: |-
+ [user:display-name],
+
+ Tvåfaktorsautentisering har stängts av på ditt [site:name] konto.
+
+ Var vänlig och kontakta en administratör ifall det inte vara du som gjorde detta.
+
+ --
+ [site:name] teamet
\ No newline at end of file
diff --git a/conf/cmi/node.type.survey.yml b/conf/cmi/node.type.survey.yml
new file mode 100644
index 00000000..1a55a53a
--- /dev/null
+++ b/conf/cmi/node.type.survey.yml
@@ -0,0 +1,33 @@
+uuid: 1dc12a96-80cd-44c3-a566-f10debad1c49
+langcode: en
+status: true
+dependencies:
+ module:
+ - menu_ui
+ - scheduler
+third_party_settings:
+ menu_ui:
+ available_menus: { }
+ parent: ''
+ scheduler:
+ expand_fieldset: when_required
+ fields_display_mode: vertical_tab
+ publish_enable: true
+ publish_past_date: error
+ publish_past_date_created: false
+ publish_required: false
+ publish_revision: false
+ publish_touch: true
+ show_message_after_update: true
+ unpublish_enable: true
+ unpublish_required: false
+ unpublish_revision: false
+_core:
+ default_config_hash: pbMUCq9D1CxNNcFQ2S0S76xWDOgKC4WOgnFyazcRW3Y
+name: Survey
+type: survey
+description: 'Content type for surveys that can be shown on different pages.'
+help: null
+new_revision: true
+preview_mode: 1
+display_submitted: false
diff --git a/conf/cmi/paragraphs.paragraphs_type.from_library.yml b/conf/cmi/paragraphs.paragraphs_type.from_library.yml
index 5736685a..0e7f7fdd 100644
--- a/conf/cmi/paragraphs.paragraphs_type.from_library.yml
+++ b/conf/cmi/paragraphs.paragraphs_type.from_library.yml
@@ -1,7 +1,10 @@
uuid: cd4f0448-ca1d-43c3-93ae-b9e5a828dbaf
langcode: en
status: true
-dependencies: { }
+dependencies:
+ enforced:
+ module:
+ - paragraphs_library
_core:
default_config_hash: OJUwL6xTTiHbXZy10swc5Fckkr7qhSm4b0nK3326LO8
id: from_library
diff --git a/conf/cmi/system.action.user_add_role_action.survey_editor.yml b/conf/cmi/system.action.user_add_role_action.survey_editor.yml
new file mode 100644
index 00000000..aeee065a
--- /dev/null
+++ b/conf/cmi/system.action.user_add_role_action.survey_editor.yml
@@ -0,0 +1,14 @@
+uuid: 456b64a3-8a8a-4fd3-b8a3-938d53573a64
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.survey_editor
+ module:
+ - user
+id: user_add_role_action.survey_editor
+label: 'Add the Survey editor role to the selected user(s)'
+type: user
+plugin: user_add_role_action
+configuration:
+ rid: survey_editor
diff --git a/conf/cmi/system.action.user_remove_role_action.survey_editor.yml b/conf/cmi/system.action.user_remove_role_action.survey_editor.yml
new file mode 100644
index 00000000..009dd8af
--- /dev/null
+++ b/conf/cmi/system.action.user_remove_role_action.survey_editor.yml
@@ -0,0 +1,14 @@
+uuid: acdd0dcc-aa4c-446f-885c-857fbf754951
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.survey_editor
+ module:
+ - user
+id: user_remove_role_action.survey_editor
+label: 'Remove the Survey editor role from the selected user(s)'
+type: user
+plugin: user_remove_role_action
+configuration:
+ rid: survey_editor
diff --git a/conf/cmi/user.role.anonymous.yml b/conf/cmi/user.role.anonymous.yml
index c4cd6b75..4401a205 100644
--- a/conf/cmi/user.role.anonymous.yml
+++ b/conf/cmi/user.role.anonymous.yml
@@ -27,6 +27,7 @@ permissions:
- 'view helfi_news_groups external entity'
- 'view helfi_news_neighbourhoods external entity'
- 'view helfi_news_tags external entity'
+ - 'view helfi_surveys external entity'
- 'view media'
- 'view remote entities'
- 'view tpr_service'
diff --git a/conf/cmi/user.role.authenticated.yml b/conf/cmi/user.role.authenticated.yml
index 4ec27c79..4a159f4f 100644
--- a/conf/cmi/user.role.authenticated.yml
+++ b/conf/cmi/user.role.authenticated.yml
@@ -35,6 +35,7 @@ permissions:
- 'view helfi_news_groups external entity'
- 'view helfi_news_neighbourhoods external entity'
- 'view helfi_news_tags external entity'
+ - 'view helfi_surveys external entity'
- 'view media'
- 'view remote entities'
- 'view tpr_service'
diff --git a/conf/cmi/user.role.survey_editor.yml b/conf/cmi/user.role.survey_editor.yml
new file mode 100644
index 00000000..7ba1bc81
--- /dev/null
+++ b/conf/cmi/user.role.survey_editor.yml
@@ -0,0 +1,27 @@
+uuid: 9ec2282e-0675-4746-9892-cd37d2b6fc8a
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.survey
+ module:
+ - content_translation
+ - node
+ - publication_date
+_core:
+ default_config_hash: CliaTgzCQcvNF9ot3u_EbHnydymXh8bvNgNFlSffj9s
+id: survey_editor
+label: 'Survey editor'
+weight: 8
+is_admin: null
+permissions:
+ - 'create survey content'
+ - 'delete any survey content'
+ - 'delete own survey content'
+ - 'delete survey revisions'
+ - 'edit any survey content'
+ - 'edit own survey content'
+ - 'revert survey revisions'
+ - 'set survey published on date'
+ - 'translate survey node'
+ - 'view survey revisions'
diff --git a/docker/openshift/Dockerfile b/docker/openshift/Dockerfile
index 3d009e9b..32d4a3a2 100644
--- a/docker/openshift/Dockerfile
+++ b/docker/openshift/Dockerfile
@@ -14,7 +14,8 @@ COPY docker/openshift/init.sh /
# Copy cron scripts
RUN mkdir /crons
COPY docker/openshift/crons/ /crons
-RUN chmod +x /crons/*
+COPY docker/openshift/cron-entrypoint.sh /usr/local/bin/cron-entrypoint
+RUN chmod +x /crons/* /usr/local/bin/cron-entrypoint
# Copy nginx overrides.
COPY docker/openshift/custom.locations /etc/nginx/conf.d/custom.locations
diff --git a/docker/openshift/cron-entrypoint.sh b/docker/openshift/cron-entrypoint.sh
new file mode 100644
index 00000000..b9f55232
--- /dev/null
+++ b/docker/openshift/cron-entrypoint.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+source /init.sh
+
+echo "Starting cron: $(date)"
+
+# You can add any additional cron "daemons" to docker/openshift/crons/ folder.
+#
+# Example:
+# @code
+# #!/bin/bash
+# while true
+# do
+# drush some-command
+# sleep 600
+# done
+# @endcode
+
+for cron in /crons/*.sh; do
+ # Skip legacy base.sh script if it exists.
+ # Skip Kubernetes hooks that are stored in crons directory.
+ if [[ "${cron##*/}" == "base.sh" ]] || [[ "${cron##*/}" == *-hook.sh ]]; then
+ continue
+ elif [[ -r "$cron" ]]; then
+ echo "Starting $cron"
+ exec "$cron" &
+ fi
+done
+
+while true
+do
+ # Rudimentary process supervisor:
+ # Waits for the next process to terminate. The parent
+ # process is killed if any subprocess exists with failure.
+ # OpenShift should then restart the cron pod.
+ wait -n
+ exit_code=$?
+ if [[ "$exit_code" -ne 0 ]]; then
+ output_error_message "Cron subprocess failed with exit code $exit_code"
+ exit 1
+ fi
+done
diff --git a/docker/openshift/crons/cron.sh b/docker/openshift/crons/cron.sh
new file mode 100644
index 00000000..3af5b6ea
--- /dev/null
+++ b/docker/openshift/crons/cron.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+while true
+do
+ echo "Running cron: $(date +'%Y-%m-%dT%H:%M:%S%:z')\n"
+ drush cron
+ # Sleep for 10 minutes.
+ sleep 600
+done
diff --git a/docker/openshift/crons/linked-events.sh b/docker/openshift/crons/linked-events.sh
index 4eecbdfb..a698f10a 100644
--- a/docker/openshift/crons/linked-events.sh
+++ b/docker/openshift/crons/linked-events.sh
@@ -1,5 +1,11 @@
#!/bin/bash
+source /init.sh
+
+if ! is_drupal_module_enabled "helfi_react_search"; then
+ exit 0
+fi
+
while true
do
# Allow migrations to be run every 3 hours and reset stuck migrations every 12 hours.
diff --git a/docker/openshift/crons/migrate-tpr.sh b/docker/openshift/crons/migrate-tpr.sh
index 780bcbbf..637d1434 100644
--- a/docker/openshift/crons/migrate-tpr.sh
+++ b/docker/openshift/crons/migrate-tpr.sh
@@ -1,5 +1,11 @@
#!/bin/bash
+source /init.sh
+
+if ! is_drupal_module_enabled "helfi_tpr"; then
+ exit 0
+fi
+
while true
do
# Allow migrations to be run every 3 hours and reset stuck migrations every 12 hours.
diff --git a/docker/openshift/crons/pubsub.sh b/docker/openshift/crons/pubsub.sh
index d5d0fc16..be359b9f 100644
--- a/docker/openshift/crons/pubsub.sh
+++ b/docker/openshift/crons/pubsub.sh
@@ -2,14 +2,9 @@
echo "Running PubSub daemon: $(date +'%Y-%m-%dT%H:%M:%S%:z')"
-i=0
-# Attempt to start this service five times.
-until [ $i -gt 5 ]
+while true
do
- drush helfi:azure:pubsub-listen
-
- if [[ "$?" -ne 0 ]]; then
- ((i=i+1))
- sleep 10
- fi
+ # 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
diff --git a/docker/openshift/init.sh b/docker/openshift/init.sh
index 8bef1380..22ccb583 100644
--- a/docker/openshift/init.sh
+++ b/docker/openshift/init.sh
@@ -30,6 +30,14 @@ function deployment_in_progress {
return 1
}
+function is_drupal_module_enabled {
+ if drush pm-list --status=Enabled --filter=${1} --format=json | jq --exit-status '. == []' > /dev/null; then
+ return 1
+ fi
+
+ return 0
+}
+
if [ ! -d "sites/default/files" ]; then
output_error_message "Container start error: Public file folder does not exist. Exiting early."
exit 1
diff --git a/tools/make/drupal.mk b/tools/make/drupal.mk
index 5f81548c..e8c9a4a2 100644
--- a/tools/make/drupal.mk
+++ b/tools/make/drupal.mk
@@ -7,6 +7,7 @@ CLEAN_EXCLUDE += $(WEBROOT)/sites/default/files
DRUPAL_DISABLE_MODULES ?= no
DRUPAL_ENABLE_MODULES ?= no
DRUPAL_PROFILE ?= minimal
+DRUPAL_SITE_EMAIL ?= maintenance@druid.fi
DRUPAL_SYNC_FILES ?= yes
DRUPAL_SYNC_SOURCE ?= main
DRUSH_RSYNC_MODE ?= Pakzu
@@ -87,7 +88,7 @@ else
endif
drush-si: ## Site install
$(call step,Do Drush site:install...\n)
- $(call drush,si ${DRUSH_SI})
+ $(call drush,si ${DRUSH_SI} --site-mail=$(DRUPAL_SITE_EMAIL))
PHONY += drush-deploy
drush-deploy: ## Run Drush deploy