From 9bc08536a2c5ad9106c4226c6970caf5b4d4b94c Mon Sep 17 00:00:00 2001 From: martinyde Date: Mon, 17 Nov 2025 14:14:14 +0100 Subject: [PATCH 1/7] Added decision content type --- ...e_field_override.node.decision.promote.yml | 22 +++ ...ity_form_display.node.decision.default.yml | 171 ++++++++++++++++++ ...ity_view_display.node.decision.default.yml | 122 +++++++++++++ ...entity_view_display.node.decision.full.yml | 115 ++++++++++++ ...splay.node.decision.hearing_ticket_add.yml | 62 +++++++ ...play.node.decision.hearing_ticket_view.yml | 62 +++++++ ...iew_display.node.decision.list_display.yml | 68 +++++++ ...ew_display.node.decision.search_result.yml | 107 +++++++++++ ...tity_view_display.node.decision.teaser.yml | 68 +++++++ .../field.field.node.decision.field_area.yml | 29 +++ ...d.node.decision.field_content_sections.yml | 98 ++++++++++ ...eld.field.node.decision.field_decision.yml | 21 +++ ...ield.node.decision.field_decision_date.yml | 24 +++ ...d.field.node.decision.field_department.yml | 29 +++ ...eld.node.decision.field_media_document.yml | 29 +++ ...ld.node.decision.field_related_content.yml | 37 ++++ ...field.field.node.decision.field_teaser.yml | 19 ++ ...d.field.node.decision.field_top_images.yml | 29 +++ .../field.field.node.decision.field_type.yml | 29 +++ .../field.storage.node.field_decision.yml | 27 +++ ...field.storage.node.field_decision_date.yml | 20 ++ ...eld.storage.node.field_related_content.yml | 19 ++ ...anguage.content_settings.node.decision.yml | 11 ++ config/sync/node.type.decision.yml | 17 ++ .../hoeringsportal_forms.module | 8 +- ...it-form--hoeringsportal-decision.html.twig | 15 ++ .../assets/css/hoeringsportal.scss | 2 +- .../assets/css/module/_card.scss | 2 + .../{_paragraph-files.scss => _files.scss} | 7 +- .../custom/hoeringsportal/assets/js/icons.js | 9 + .../components/header-default.html.twig | 31 +++- .../content/media--document.html.twig | 19 ++ .../content/node--decision--full.html.twig | 52 ++++++ .../content/node--dialogue--full.html.twig | 32 ++-- .../field--field-media-document.html.twig | 6 +- .../field--field-related-content.html.twig | 35 +--- 36 files changed, 1396 insertions(+), 57 deletions(-) create mode 100644 config/sync/core.base_field_override.node.decision.promote.yml create mode 100644 config/sync/core.entity_form_display.node.decision.default.yml create mode 100644 config/sync/core.entity_view_display.node.decision.default.yml create mode 100644 config/sync/core.entity_view_display.node.decision.full.yml create mode 100644 config/sync/core.entity_view_display.node.decision.hearing_ticket_add.yml create mode 100644 config/sync/core.entity_view_display.node.decision.hearing_ticket_view.yml create mode 100644 config/sync/core.entity_view_display.node.decision.list_display.yml create mode 100644 config/sync/core.entity_view_display.node.decision.search_result.yml create mode 100644 config/sync/core.entity_view_display.node.decision.teaser.yml create mode 100644 config/sync/field.field.node.decision.field_area.yml create mode 100644 config/sync/field.field.node.decision.field_content_sections.yml create mode 100644 config/sync/field.field.node.decision.field_decision.yml create mode 100644 config/sync/field.field.node.decision.field_decision_date.yml create mode 100644 config/sync/field.field.node.decision.field_department.yml create mode 100644 config/sync/field.field.node.decision.field_media_document.yml create mode 100644 config/sync/field.field.node.decision.field_related_content.yml create mode 100644 config/sync/field.field.node.decision.field_teaser.yml create mode 100644 config/sync/field.field.node.decision.field_top_images.yml create mode 100644 config/sync/field.field.node.decision.field_type.yml create mode 100644 config/sync/field.storage.node.field_decision.yml create mode 100644 config/sync/field.storage.node.field_decision_date.yml create mode 100644 config/sync/field.storage.node.field_related_content.yml create mode 100644 config/sync/language.content_settings.node.decision.yml create mode 100644 config/sync/node.type.decision.yml create mode 100644 web/modules/custom/hoeringsportal_forms/templates/node-edit-form--hoeringsportal-decision.html.twig rename web/themes/custom/hoeringsportal/assets/css/module/{_paragraph-files.scss => _files.scss} (55%) create mode 100644 web/themes/custom/hoeringsportal/templates/content/media--document.html.twig create mode 100755 web/themes/custom/hoeringsportal/templates/content/node--decision--full.html.twig diff --git a/config/sync/core.base_field_override.node.decision.promote.yml b/config/sync/core.base_field_override.node.decision.promote.yml new file mode 100644 index 000000000..ac8bc6782 --- /dev/null +++ b/config/sync/core.base_field_override.node.decision.promote.yml @@ -0,0 +1,22 @@ +uuid: f772f85c-7ed2-4081-b22c-c26385bdd4dd +langcode: da +status: true +dependencies: + config: + - node.type.decision +id: node.decision.promote +field_name: promote +entity_type: node +bundle: decision +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/config/sync/core.entity_form_display.node.decision.default.yml b/config/sync/core.entity_form_display.node.decision.default.yml new file mode 100644 index 000000000..d65829968 --- /dev/null +++ b/config/sync/core.entity_form_display.node.decision.default.yml @@ -0,0 +1,171 @@ +uuid: 24030138-b514-4b6d-b455-18790bddd0b5 +langcode: da +status: true +dependencies: + config: + - entity_browser.browser.itk_image_browser + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - datetime + - entity_browser + - field_group + - paragraphs +third_party_settings: + field_group: + group_information: + children: + - field_decision + - field_decision_date + - field_department + - field_area + - field_type + label: Informationer + region: content + parent_name: '' + weight: 7 + format_type: details + format_settings: + classes: '' + show_empty_fields: false + id: '' + label_as_html: false + open: true + description: '' + required_fields: false +id: node.decision.default +targetEntityType: node +bundle: decision +mode: default +content: + field_area: + type: options_buttons + weight: 5 + region: content + settings: { } + third_party_settings: { } + field_content_sections: + type: paragraphs + weight: 3 + region: content + settings: + title: Paragraph + title_plural: Paragraphs + edit_mode: closed_expand_nested + closed_mode: summary + autocollapse: none + closed_mode_threshold: 0 + add_mode: modal + form_display_mode: default + default_paragraph_type: _none + features: + add_above: '0' + collapse_edit_all: collapse_edit_all + convert: '0' + duplicate: duplicate + third_party_settings: { } + field_decision: + type: options_buttons + weight: 2 + region: content + settings: { } + third_party_settings: { } + field_decision_date: + type: datetime_default + weight: 3 + region: content + settings: { } + third_party_settings: { } + field_department: + type: options_buttons + weight: 4 + region: content + settings: { } + third_party_settings: { } + field_media_document: + type: entity_browser_entity_reference + weight: 4 + region: content + settings: + entity_browser: itk_document_browser + field_widget_display: rendered_entity + field_widget_edit: false + field_widget_remove: true + field_widget_replace: false + open: true + field_widget_display_settings: + view_mode: node_form_display + selection_mode: selection_append + third_party_settings: { } + field_related_content: + type: entity_reference_autocomplete + weight: 5 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + field_teaser: + type: string_textarea + weight: 2 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + field_top_images: + type: entity_browser_entity_reference + weight: 1 + region: content + settings: + entity_browser: itk_image_browser + field_widget_display: rendered_entity + field_widget_edit: true + field_widget_remove: true + field_widget_replace: false + open: false + field_widget_display_settings: + view_mode: material_display + selection_mode: selection_append + third_party_settings: { } + field_type: + type: options_buttons + weight: 6 + region: content + settings: { } + third_party_settings: { } + status: + type: boolean_checkbox + weight: 6 + region: content + settings: + display_label: true + third_party_settings: { } + title: + type: string_textfield + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } +hidden: + created: true + langcode: true + path: true + promote: true + published_at: true + sticky: true + uid: true + url_redirects: true diff --git a/config/sync/core.entity_view_display.node.decision.default.yml b/config/sync/core.entity_view_display.node.decision.default.yml new file mode 100644 index 000000000..8157fa4b9 --- /dev/null +++ b/config/sync/core.entity_view_display.node.decision.default.yml @@ -0,0 +1,122 @@ +uuid: 0417aa9c-af33-4042-9b52-e369cff5e42b +langcode: da +status: true +dependencies: + config: + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - datetime + - entity_reference_revisions + - options + - user +id: node.decision.default +targetEntityType: node +bundle: decision +mode: default +content: + field_area: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 3 + region: content + field_content_sections: + type: entity_reference_revisions_entity_view + label: hidden + settings: + view_mode: default + link: '' + third_party_settings: { } + weight: 5 + region: content + field_decision: + type: list_default + label: above + settings: { } + third_party_settings: { } + weight: 8 + region: content + field_decision_date: + type: datetime_default + label: above + settings: + timezone_override: '' + format_type: long + third_party_settings: { } + weight: 9 + region: content + field_department: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 2 + region: content + field_media_document: + type: entity_reference_entity_view + label: above + settings: + view_mode: material_display + link: false + third_party_settings: { } + weight: 11 + region: content + field_related_content: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 10 + region: content + field_teaser: + type: basic_string + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + field_top_images: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: full + link: false + third_party_settings: { } + weight: 0 + region: content + field_type: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 4 + region: content + links: + settings: { } + third_party_settings: { } + weight: 7 + region: content + sharing_buttons: + settings: { } + third_party_settings: { } + weight: 6 + region: content +hidden: + langcode: true + published_at: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.decision.full.yml b/config/sync/core.entity_view_display.node.decision.full.yml new file mode 100644 index 000000000..5a9afac9e --- /dev/null +++ b/config/sync/core.entity_view_display.node.decision.full.yml @@ -0,0 +1,115 @@ +uuid: 99d093d7-1331-4ebf-8e9d-331304e239c9 +langcode: da +status: true +dependencies: + config: + - core.entity_view_mode.node.full + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - datetime + - entity_reference_revisions + - options + - user +id: node.decision.full +targetEntityType: node +bundle: decision +mode: full +content: + field_area: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 3 + region: content + field_content_sections: + type: entity_reference_revisions_entity_view + label: hidden + settings: + view_mode: default + link: '' + third_party_settings: { } + weight: 5 + region: content + field_decision: + type: list_default + label: hidden + settings: { } + third_party_settings: { } + weight: 6 + region: content + field_decision_date: + type: datetime_default + label: hidden + settings: + timezone_override: '' + format_type: long + third_party_settings: { } + weight: 7 + region: content + field_department: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 2 + region: content + field_media_document: + type: entity_reference_entity_view + label: above + settings: + view_mode: material_display + link: false + third_party_settings: { } + weight: 8 + region: content + field_related_content: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: teaser + link: false + third_party_settings: { } + weight: 9 + region: content + field_teaser: + type: basic_string + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + field_top_images: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 0 + region: content + field_type: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 4 + region: content +hidden: + langcode: true + links: true + published_at: true + search_api_excerpt: true + sharing_buttons: true diff --git a/config/sync/core.entity_view_display.node.decision.hearing_ticket_add.yml b/config/sync/core.entity_view_display.node.decision.hearing_ticket_add.yml new file mode 100644 index 000000000..9406b5a6a --- /dev/null +++ b/config/sync/core.entity_view_display.node.decision.hearing_ticket_add.yml @@ -0,0 +1,62 @@ +uuid: 35e949f8-d5d6-4c2f-9b59-7435ab293d4c +langcode: da +status: false +dependencies: + config: + - core.entity_view_mode.node.hearing_ticket_add + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - user +id: node.decision.hearing_ticket_add +targetEntityType: node +bundle: decision +mode: hearing_ticket_add +content: + field_area: + type: entity_reference_label + label: above + settings: + link: false + third_party_settings: { } + weight: 9 + region: right + field_type: + type: entity_reference_label + label: above + settings: + link: false + third_party_settings: { } + weight: 7 + region: right + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content + sharing_buttons: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_content_sections: true + field_decision: true + field_decision_date: true + field_department: true + field_media_document: true + field_related_content: true + field_teaser: true + field_top_images: true + langcode: true + published_at: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.decision.hearing_ticket_view.yml b/config/sync/core.entity_view_display.node.decision.hearing_ticket_view.yml new file mode 100644 index 000000000..b9721ce49 --- /dev/null +++ b/config/sync/core.entity_view_display.node.decision.hearing_ticket_view.yml @@ -0,0 +1,62 @@ +uuid: e50317a7-6ae6-45d6-9477-95a200b712a4 +langcode: da +status: false +dependencies: + config: + - core.entity_view_mode.node.hearing_ticket_view + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - user +id: node.decision.hearing_ticket_view +targetEntityType: node +bundle: decision +mode: hearing_ticket_view +content: + field_area: + type: entity_reference_label + label: above + settings: + link: false + third_party_settings: { } + weight: 10 + region: right + field_type: + type: entity_reference_label + label: above + settings: + link: false + third_party_settings: { } + weight: 8 + region: right + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content + sharing_buttons: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_content_sections: true + field_decision: true + field_decision_date: true + field_department: true + field_media_document: true + field_related_content: true + field_teaser: true + field_top_images: true + langcode: true + published_at: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.decision.list_display.yml b/config/sync/core.entity_view_display.node.decision.list_display.yml new file mode 100644 index 000000000..a29c62fd4 --- /dev/null +++ b/config/sync/core.entity_view_display.node.decision.list_display.yml @@ -0,0 +1,68 @@ +uuid: ee648295-8db5-41f0-8571-d63ed424f0d2 +langcode: da +status: true +dependencies: + config: + - core.entity_view_mode.node.list_display + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - user +id: node.decision.list_display +targetEntityType: node +bundle: decision +mode: list_display +content: + field_area: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 4 + region: content + field_teaser: + type: basic_string + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + field_type: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 3 + region: content + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content + sharing_buttons: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_content_sections: true + field_decision: true + field_decision_date: true + field_department: true + field_media_document: true + field_related_content: true + field_top_images: true + langcode: true + published_at: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.decision.search_result.yml b/config/sync/core.entity_view_display.node.decision.search_result.yml new file mode 100644 index 000000000..346d1e2f2 --- /dev/null +++ b/config/sync/core.entity_view_display.node.decision.search_result.yml @@ -0,0 +1,107 @@ +uuid: 44fa74b4-4aaa-41de-bd67-385fa5b59b71 +langcode: da +status: true +dependencies: + config: + - core.entity_view_mode.node.search_result + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - datetime + - entity_reference_revisions + - options + - user +id: node.decision.search_result +targetEntityType: node +bundle: decision +mode: search_result +content: + field_area: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 3 + region: content + field_content_sections: + type: entity_reference_revisions_entity_view + label: hidden + settings: + view_mode: default + link: '' + third_party_settings: { } + weight: 5 + region: content + field_decision: + type: list_default + label: above + settings: { } + third_party_settings: { } + weight: 101 + region: content + field_decision_date: + type: datetime_default + label: above + settings: + timezone_override: '' + format_type: medium + third_party_settings: { } + weight: 102 + region: content + field_department: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 2 + region: content + field_related_content: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 103 + region: content + field_teaser: + type: basic_string + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + field_type: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 4 + region: content + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content + sharing_buttons: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_media_document: true + field_top_images: true + langcode: true + published_at: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.decision.teaser.yml b/config/sync/core.entity_view_display.node.decision.teaser.yml new file mode 100644 index 000000000..f105ea5c7 --- /dev/null +++ b/config/sync/core.entity_view_display.node.decision.teaser.yml @@ -0,0 +1,68 @@ +uuid: 53e0d791-db1f-49d0-9c1c-bef79f768ee4 +langcode: da +status: false +dependencies: + config: + - core.entity_view_mode.node.teaser + - field.field.node.decision.field_area + - field.field.node.decision.field_content_sections + - field.field.node.decision.field_decision + - field.field.node.decision.field_decision_date + - field.field.node.decision.field_department + - field.field.node.decision.field_media_document + - field.field.node.decision.field_related_content + - field.field.node.decision.field_teaser + - field.field.node.decision.field_top_images + - field.field.node.decision.field_type + - node.type.decision + module: + - user +id: node.decision.teaser +targetEntityType: node +bundle: decision +mode: teaser +content: + field_area: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 1 + region: content + field_teaser: + type: basic_string + label: hidden + settings: { } + third_party_settings: { } + weight: 0 + region: content + field_type: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 3 + region: content + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content + sharing_buttons: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_content_sections: true + field_decision: true + field_decision_date: true + field_department: true + field_media_document: true + field_related_content: true + field_top_images: true + langcode: true + published_at: true + search_api_excerpt: true diff --git a/config/sync/field.field.node.decision.field_area.yml b/config/sync/field.field.node.decision.field_area.yml new file mode 100644 index 000000000..a1469fd85 --- /dev/null +++ b/config/sync/field.field.node.decision.field_area.yml @@ -0,0 +1,29 @@ +uuid: 10d03655-6e76-4b58-9ccc-da13db14a283 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_area + - node.type.decision + - taxonomy.vocabulary.area +id: node.decision.field_area +field_name: field_area +entity_type: node +bundle: decision +label: Område +description: 'Vælg områder som høringen dækker. Markér alle hvis høringen dækker hele kommunen.' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + area: area + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/config/sync/field.field.node.decision.field_content_sections.yml b/config/sync/field.field.node.decision.field_content_sections.yml new file mode 100644 index 000000000..a6c7adc36 --- /dev/null +++ b/config/sync/field.field.node.decision.field_content_sections.yml @@ -0,0 +1,98 @@ +uuid: 5bbff749-18f6-4bd9-85f3-44b0c0ce97af +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_content_sections + - node.type.decision + - paragraphs.paragraphs_type.accordion + - paragraphs.paragraphs_type.content_block + - paragraphs.paragraphs_type.image + - paragraphs.paragraphs_type.info_box + - paragraphs.paragraphs_type.introduction + - paragraphs.paragraphs_type.teaser_row + - paragraphs.paragraphs_type.text + - paragraphs.paragraphs_type.text_aside_blocks_2_column + - paragraphs.paragraphs_type.video + module: + - entity_reference_revisions +id: node.decision.field_content_sections +field_name: field_content_sections +entity_type: node +bundle: decision +label: 'Content sections' +description: 'Used to create page sections with the Drupal Paragraphs module' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:paragraph' + handler_settings: + target_bundles: + text: text + image: image + content_block: content_block + text_aside_blocks_2_column: text_aside_blocks_2_column + info_box: info_box + introduction: introduction + teaser_row: teaser_row + accordion: accordion + video: video + negate: 0 + target_bundles_drag_drop: + accordion: + weight: 18 + enabled: true + accordion_item: + weight: 20 + enabled: false + content_block: + weight: -21 + enabled: true + content_list: + weight: -20 + enabled: false + content_promotion: + weight: 19 + enabled: false + files: + weight: 13 + enabled: false + image: + weight: -22 + enabled: true + info_box: + weight: -18 + enabled: true + introduction: + weight: -17 + enabled: true + link: + weight: 24 + enabled: false + links_on_a_background_image: + weight: 25 + enabled: false + projekt_billede_galleri: + weight: -16 + enabled: false + teaser_row: + weight: -15 + enabled: true + text: + weight: -23 + enabled: true + text_aside_blocks_2_column: + weight: -19 + enabled: true + timeline_items: + weight: -14 + enabled: false + timeline_period: + weight: -13 + enabled: false + video: + weight: 32 + enabled: true +field_type: entity_reference_revisions diff --git a/config/sync/field.field.node.decision.field_decision.yml b/config/sync/field.field.node.decision.field_decision.yml new file mode 100644 index 000000000..21bb1bc83 --- /dev/null +++ b/config/sync/field.field.node.decision.field_decision.yml @@ -0,0 +1,21 @@ +uuid: 0150d467-dac7-457d-a048-1f25efaf0b51 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_decision + - node.type.decision + module: + - options +id: node.decision.field_decision +field_name: field_decision +entity_type: node +bundle: decision +label: Decision +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: list_string diff --git a/config/sync/field.field.node.decision.field_decision_date.yml b/config/sync/field.field.node.decision.field_decision_date.yml new file mode 100644 index 000000000..03e8db729 --- /dev/null +++ b/config/sync/field.field.node.decision.field_decision_date.yml @@ -0,0 +1,24 @@ +uuid: b3ab55f2-ea42-4a28-b6cf-88d3897dd221 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_decision_date + - node.type.decision + module: + - datetime +id: node.decision.field_decision_date +field_name: field_decision_date +entity_type: node +bundle: decision +label: 'Decision date' +description: 'The date of the city council meeting where this decision was made.' +required: true +translatable: false +default_value: + - + default_date_type: now + default_date: now +default_value_callback: '' +settings: { } +field_type: datetime diff --git a/config/sync/field.field.node.decision.field_department.yml b/config/sync/field.field.node.decision.field_department.yml new file mode 100644 index 000000000..fa609cbf1 --- /dev/null +++ b/config/sync/field.field.node.decision.field_department.yml @@ -0,0 +1,29 @@ +uuid: edb73cc7-aaec-40dc-9f03-234b6d2346e1 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_department + - node.type.decision + - taxonomy.vocabulary.department +id: node.decision.field_department +field_name: field_department +entity_type: node +bundle: decision +label: Department +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + department: department + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/config/sync/field.field.node.decision.field_media_document.yml b/config/sync/field.field.node.decision.field_media_document.yml new file mode 100644 index 000000000..2e15a7e09 --- /dev/null +++ b/config/sync/field.field.node.decision.field_media_document.yml @@ -0,0 +1,29 @@ +uuid: 1827e66a-93a8-4cec-a302-e84078d2b910 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_media_document + - media.type.document + - node.type.decision +id: node.decision.field_media_document +field_name: field_media_document +entity_type: node +bundle: decision +label: Filer +description: 'Vælg dokumenter der beskriver høringen.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: + document: document + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/config/sync/field.field.node.decision.field_related_content.yml b/config/sync/field.field.node.decision.field_related_content.yml new file mode 100644 index 000000000..5dfc14f65 --- /dev/null +++ b/config/sync/field.field.node.decision.field_related_content.yml @@ -0,0 +1,37 @@ +uuid: c7f83f3e-02e4-42cb-b5ce-8e9ed506f0cc +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_related_content + - node.type.citizen_proposal + - node.type.decision + - node.type.dialogue + - node.type.hearing + - node.type.project_main_page + - node.type.public_meeting +id: node.decision.field_related_content +field_name: field_related_content +entity_type: node +bundle: decision +label: 'Related content' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:node' + handler_settings: + target_bundles: + public_meeting: public_meeting + citizen_proposal: citizen_proposal + dialogue: dialogue + hearing: hearing + project_main_page: project_main_page + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: citizen_proposal +field_type: entity_reference diff --git a/config/sync/field.field.node.decision.field_teaser.yml b/config/sync/field.field.node.decision.field_teaser.yml new file mode 100644 index 000000000..8e0f69030 --- /dev/null +++ b/config/sync/field.field.node.decision.field_teaser.yml @@ -0,0 +1,19 @@ +uuid: c64442fb-fcb1-475b-a2f9-3e873bda65a1 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_teaser + - node.type.decision +id: node.decision.field_teaser +field_name: field_teaser +entity_type: node +bundle: decision +label: Teaser/indledning +description: 'Kort tekst der vises i teasers og i toppen af indholdsviningen' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string_long diff --git a/config/sync/field.field.node.decision.field_top_images.yml b/config/sync/field.field.node.decision.field_top_images.yml new file mode 100644 index 000000000..69f916f68 --- /dev/null +++ b/config/sync/field.field.node.decision.field_top_images.yml @@ -0,0 +1,29 @@ +uuid: bd5dd147-942f-49bf-b4e2-1b7ba3357927 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_top_images + - media.type.image + - node.type.decision +id: node.decision.field_top_images +field_name: field_top_images +entity_type: node +bundle: decision +label: 'Top images' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: + image: image + sort: + field: _none + direction: ASC + auto_create: true + auto_create_bundle: '' +field_type: entity_reference diff --git a/config/sync/field.field.node.decision.field_type.yml b/config/sync/field.field.node.decision.field_type.yml new file mode 100644 index 000000000..6aaf8e6e4 --- /dev/null +++ b/config/sync/field.field.node.decision.field_type.yml @@ -0,0 +1,29 @@ +uuid: fd584573-d54b-4992-8c84-95f658905cb6 +langcode: da +status: true +dependencies: + config: + - field.storage.node.field_type + - node.type.decision + - taxonomy.vocabulary.type +id: node.decision.field_type +field_name: field_type +entity_type: node +bundle: decision +label: Type +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + type: type + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/config/sync/field.storage.node.field_decision.yml b/config/sync/field.storage.node.field_decision.yml new file mode 100644 index 000000000..29b68e8c3 --- /dev/null +++ b/config/sync/field.storage.node.field_decision.yml @@ -0,0 +1,27 @@ +uuid: e53c7c22-83ec-4ebc-b22b-b25c9ed6a2ee +langcode: da +status: true +dependencies: + module: + - node + - options +id: node.field_decision +field_name: field_decision +entity_type: node +type: list_string +settings: + allowed_values: + - + value: vedtaget + label: Vedtaget + - + value: afvist + label: Afvist + allowed_values_function: '' +module: options +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/sync/field.storage.node.field_decision_date.yml b/config/sync/field.storage.node.field_decision_date.yml new file mode 100644 index 000000000..dac957bf3 --- /dev/null +++ b/config/sync/field.storage.node.field_decision_date.yml @@ -0,0 +1,20 @@ +uuid: 822f0957-0ecc-4cdc-8519-d5d66ebbabc1 +langcode: da +status: true +dependencies: + module: + - datetime + - node +id: node.field_decision_date +field_name: field_decision_date +entity_type: node +type: datetime +settings: + datetime_type: date +module: datetime +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/sync/field.storage.node.field_related_content.yml b/config/sync/field.storage.node.field_related_content.yml new file mode 100644 index 000000000..2d19f7ea1 --- /dev/null +++ b/config/sync/field.storage.node.field_related_content.yml @@ -0,0 +1,19 @@ +uuid: 77cbd1b2-2daa-469f-a2e8-71579235c45f +langcode: da +status: true +dependencies: + module: + - node +id: node.field_related_content +field_name: field_related_content +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/config/sync/language.content_settings.node.decision.yml b/config/sync/language.content_settings.node.decision.yml new file mode 100644 index 000000000..25ed5ae6d --- /dev/null +++ b/config/sync/language.content_settings.node.decision.yml @@ -0,0 +1,11 @@ +uuid: 77434050-0846-4e06-8236-c65e7215b93b +langcode: da +status: true +dependencies: + config: + - node.type.decision +id: node.decision +target_entity_type_id: node +target_bundle: decision +default_langcode: site_default +language_alterable: false diff --git a/config/sync/node.type.decision.yml b/config/sync/node.type.decision.yml new file mode 100644 index 000000000..3b1715b4b --- /dev/null +++ b/config/sync/node.type.decision.yml @@ -0,0 +1,17 @@ +uuid: 45535a89-bf49-4136-9f4d-005a52be7abf +langcode: da +status: true +dependencies: + module: + - menu_ui +third_party_settings: + menu_ui: + available_menus: { } + parent: '' +name: Afgørelse +type: decision +description: "A decision from a council meeting. It's possible to upload files related to the decision and link to hearings, projects and other content related to the decision." +help: null +new_revision: false +preview_mode: 0 +display_submitted: false diff --git a/web/modules/custom/hoeringsportal_forms/hoeringsportal_forms.module b/web/modules/custom/hoeringsportal_forms/hoeringsportal_forms.module index 124a6883a..98462f090 100644 --- a/web/modules/custom/hoeringsportal_forms/hoeringsportal_forms.module +++ b/web/modules/custom/hoeringsportal_forms/hoeringsportal_forms.module @@ -15,7 +15,7 @@ use Drupal\field\FieldStorageConfigInterface; * Add a template suggestions for modifying the node form. */ function hoeringsportal_forms_theme_suggestions_alter(array &$suggestions, array $variables, string $hook) { - if (isset($variables['form']) && $variables['theme_hook_original'] == 'node_edit_form') { + if (isset($variables['form']) && $variables['theme_hook_original'] == 'node_edit_form') { if ($variables['form']['#form_id'] == 'node_project_form' || $variables['form']['#form_id'] == 'node_project_edit_form') { $suggestions[] = $hook . '__hoeringsportal_project'; } @@ -31,6 +31,9 @@ function hoeringsportal_forms_theme_suggestions_alter(array &$suggestions, array if ($variables['form']['#form_id'] == 'node_dialogue_form' || $variables['form']['#form_id'] == 'node_dialogue_edit_form') { $suggestions[] = $hook . '__hoeringsportal_dialogue'; } + if ($variables['form']['#form_id'] == 'node_decision_form' || $variables['form']['#form_id'] == 'node_decision_edit_form') { + $suggestions[] = $hook . '__hoeringsportal_decision'; + } } return $suggestions; @@ -58,6 +61,9 @@ function hoeringsportal_forms_theme($existing, $type, $theme, $path) { 'node_edit_form__hoeringsportal_dialogue' => [ 'render element' => 'form', ], + 'node_edit_form__hoeringsportal_decision' => [ + 'render element' => 'form', + ], ]; } diff --git a/web/modules/custom/hoeringsportal_forms/templates/node-edit-form--hoeringsportal-decision.html.twig b/web/modules/custom/hoeringsportal_forms/templates/node-edit-form--hoeringsportal-decision.html.twig new file mode 100644 index 000000000..255534ff9 --- /dev/null +++ b/web/modules/custom/hoeringsportal_forms/templates/node-edit-form--hoeringsportal-decision.html.twig @@ -0,0 +1,15 @@ +{% extends '@claro/node-edit-form.html.twig' %} + +{% block main %} + {{ form|without('advanced', 'group_information', 'group_system_settings', 'actions') }} +{% endblock %} + +{% block secondary %} + {{ form.advanced }} + {{ form.group_information }} + {{ form.group_system_settings }} +{% endblock %} + +{% block footer %} + {{ form.actions }} +{% endblock %} diff --git a/web/themes/custom/hoeringsportal/assets/css/hoeringsportal.scss b/web/themes/custom/hoeringsportal/assets/css/hoeringsportal.scss index e0d61a2f7..03349f47e 100755 --- a/web/themes/custom/hoeringsportal/assets/css/hoeringsportal.scss +++ b/web/themes/custom/hoeringsportal/assets/css/hoeringsportal.scss @@ -8,7 +8,7 @@ "module/social-sharing-buttons", "module/form", "module/image-gallery", "module/spinner", "module/signup", "module/list", "module/pager", "module/paragraph-background-image", "module/paragraph-content-promotion", - "module/paragraph-files", "module/paragraph-link", "module/info_box", + "module/files", "module/paragraph-link", "module/info_box", "module/search", "module/search-page", "module/newsletter", "module/proposal", "module/animation", "module/header-v2", "module/animated-svg", "../../node_modules/slick-carousel/slick/slick"; diff --git a/web/themes/custom/hoeringsportal/assets/css/module/_card.scss b/web/themes/custom/hoeringsportal/assets/css/module/_card.scss index 11128a01a..94fca116a 100755 --- a/web/themes/custom/hoeringsportal/assets/css/module/_card.scss +++ b/web/themes/custom/hoeringsportal/assets/css/module/_card.scss @@ -28,6 +28,8 @@ color: $petroleum; } + border: 1px solid $gray-300; + text-decoration: none; height: 100%; transition: box-shadow var(--transition-duration-in) diff --git a/web/themes/custom/hoeringsportal/assets/css/module/_paragraph-files.scss b/web/themes/custom/hoeringsportal/assets/css/module/_files.scss similarity index 55% rename from web/themes/custom/hoeringsportal/assets/css/module/_paragraph-files.scss rename to web/themes/custom/hoeringsportal/assets/css/module/_files.scss index e5b1b4915..7c42f9de0 100644 --- a/web/themes/custom/hoeringsportal/assets/css/module/_paragraph-files.scss +++ b/web/themes/custom/hoeringsportal/assets/css/module/_files.scss @@ -1,14 +1,15 @@ -.paragraph-files article { +article.media-document { background-color: $color-petroleum-100; padding: $spacer; margin-bottom: calc($spacer * 0.25); display: flex; } -.paragraph-files article svg { +article.media-document svg { order: 1; } -.paragraph-files article span { +article.media-document span { + font-weight: $font-weight-base; order: 2; } diff --git a/web/themes/custom/hoeringsportal/assets/js/icons.js b/web/themes/custom/hoeringsportal/assets/js/icons.js index e5b20cccc..eeb1cbafd 100644 --- a/web/themes/custom/hoeringsportal/assets/js/icons.js +++ b/web/themes/custom/hoeringsportal/assets/js/icons.js @@ -7,6 +7,12 @@ import { library, dom } from "@fortawesome/fontawesome-svg-core"; // To keep the package size as small as possible we only import icons we use +// Import the icons from the free regular package. +import { + faWindowClose, + faCircleDot, +} from "@fortawesome/free-regular-svg-icons"; + // Import the icons from the free solid package. import { faArrowRight, @@ -50,6 +56,9 @@ import { // Add the icons to the library for replacing with the intended svg. library.add( + // Regular + faWindowClose, + faCircleDot, // Solid faArrowRight, faArrowLeft, diff --git a/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig b/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig index 831f27bc7..f3b58f9fc 100644 --- a/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig +++ b/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig @@ -1,6 +1,6 @@ {{ attach_library('hoeringsportal/image-fade') }} -
+
{% block header_top_image %} {% if images %} {% if images|length > 1 %} @@ -23,8 +23,33 @@
{{ category }}
{% endif %}

{{ title }}

-
- {{ description }} +
+
+ {{ description }} +
+ {% if right_content %} +
+
+ {% for element in right_content %} +
+
+ +
+ {% if element.type is same as('text') %} +
+
{{ element.label }}
+
{{ element.value }}
+
+ {% endif %} + {% if element.type is same as('link') %} + + {% endif %} +
+ + {% endfor %} +
+
+ {% endif %}
{% if shortcuts %}
diff --git a/web/themes/custom/hoeringsportal/templates/content/media--document.html.twig b/web/themes/custom/hoeringsportal/templates/content/media--document.html.twig new file mode 100644 index 000000000..32dc1f069 --- /dev/null +++ b/web/themes/custom/hoeringsportal/templates/content/media--document.html.twig @@ -0,0 +1,19 @@ +{# +/** + * @file + * Theme override to display a media item. + * + * Available variables: + * - name: Name of the media. + * - content: Media content. + * + * @see template_preprocess_media() + * + * @ingroup themeable + */ +#} +
+ {% if content %} + {{ content }} + {% endif %} +
diff --git a/web/themes/custom/hoeringsportal/templates/content/node--decision--full.html.twig b/web/themes/custom/hoeringsportal/templates/content/node--decision--full.html.twig new file mode 100755 index 000000000..4f04aca4f --- /dev/null +++ b/web/themes/custom/hoeringsportal/templates/content/node--decision--full.html.twig @@ -0,0 +1,52 @@ +{% extends '@hoeringsportal/node/_node--1-col-large-image-top.html.twig' %} + +{% block content_top %} + {# Header #} + {{ include(directory ~ '/templates/components/header-default.html.twig', { + images: node.field_top_images, + type: node.bundle, + title: node.label, + description: content.field_teaser, + tags_fields: {0: content.field_area, 1: content.field_type}, + shortcuts: {}, + background_class: 'bg-white', + right_content: { + 0: { + type: 'text', + label: 'Decision'|t, + value: content.field_decision + }, + 1: { + type: 'text', + label: 'Decision date'|t, + value: content.field_decision_date + } + } + }) }} +{% endblock %} + +{% block content_main %} + {# Main container #} +
+
+
+ {{ content.field_content_sections }} +
+
+
+
+ {{ content.field_media_document }} +
+
+
+
+
+
+
+
+

{{ 'This decision related to these activities'|t }}

+
+ {{ content.field_related_content }} +
+
+{% endblock %} diff --git a/web/themes/custom/hoeringsportal/templates/content/node--dialogue--full.html.twig b/web/themes/custom/hoeringsportal/templates/content/node--dialogue--full.html.twig index 0da16dfdb..c8e24a324 100755 --- a/web/themes/custom/hoeringsportal/templates/content/node--dialogue--full.html.twig +++ b/web/themes/custom/hoeringsportal/templates/content/node--dialogue--full.html.twig @@ -22,32 +22,28 @@ href: {route: 'entity.node.canonical', parameters: {node: 1} }, } - } + }, + background_class: 'bg-white' }) }} {% endblock %} {% block content_main %} {# Main container #} -
-
-
- {{ content|without('field_top_images', 'field_teaser', 'field_area', 'field_department', 'field_type', 'field_content_sections') }} -
-
- {{ content.field_aside_block }} +
+
+
+ {{ content.field_content_sections }}
-
-
- {{ content.field_content_sections }} -
- -
-
-
-

{{ 'Proposals'|t }}

+
+
+
+
+

{{ 'Proposals'|t }}

+
+ {{ drupal_view('dialogue_proposals', 'block_1', content.id) }} +
- {{ drupal_view('dialogue_proposals', 'block_1', content.id) }}
{% endblock %} diff --git a/web/themes/custom/hoeringsportal/templates/field/field--field-media-document.html.twig b/web/themes/custom/hoeringsportal/templates/field/field--field-media-document.html.twig index 95381af86..1b9cad628 100644 --- a/web/themes/custom/hoeringsportal/templates/field/field--field-media-document.html.twig +++ b/web/themes/custom/hoeringsportal/templates/field/field--field-media-document.html.twig @@ -39,10 +39,10 @@ #} {% if label_display == 'above' %} -

{{ 'Materials'|t }} ({{ items|length }})

+

{{ label }}

{% endif %} - diff --git a/web/themes/custom/hoeringsportal/templates/field/field--field-related-content.html.twig b/web/themes/custom/hoeringsportal/templates/field/field--field-related-content.html.twig index f7aa3f680..e4e7095ef 100755 --- a/web/themes/custom/hoeringsportal/templates/field/field--field-related-content.html.twig +++ b/web/themes/custom/hoeringsportal/templates/field/field--field-related-content.html.twig @@ -38,33 +38,12 @@ #}
- {% if label_hidden %} - {% if multiple %} - {% for item in items %} -
- {{ item.content }} -
- {% endfor %} - {% else %} - {% for item in items %} - {{ item.content }} - {% endfor %} - {% endif %} - {% else %} -

{{ label }}

- {% if multiple %} -
- {% endif %} -
- {% for item in items %} -
- {{ item.content }} -
- {% endfor %} -
- {% if multiple %} -
- {% endif %} - {% endif %} +
+ {% for item in items %} +
+ {{ item.content }} +
+ {% endfor %} +
From 559dcd00cfa0f9dffe9ec37a2c0266d249bbeb0e Mon Sep 17 00:00:00 2001 From: martinyde Date: Mon, 17 Nov 2025 14:39:36 +0100 Subject: [PATCH 2/7] Updated config for decisions --- ...agraph.content_list.field_content_list.yml | 1 + config/sync/views.view.all_decisions.yml | 323 ++++++++++++++++++ .../sync/views.view.all_early_inclusion.yml | 2 +- .../assets/css/module/_animated-svg.scss | 2 +- .../components/header-default.html.twig | 10 +- .../content/node--decision--teaser.html.twig | 9 + .../field/field--field-type.html.twig | 61 ++++ 7 files changed, 402 insertions(+), 6 deletions(-) create mode 100644 config/sync/views.view.all_decisions.yml create mode 100755 web/themes/custom/hoeringsportal/templates/content/node--decision--teaser.html.twig create mode 100755 web/themes/custom/hoeringsportal/templates/field/field--field-type.html.twig diff --git a/config/sync/field.field.paragraph.content_list.field_content_list.yml b/config/sync/field.field.paragraph.content_list.field_content_list.yml index 0d6c560f6..67424c22e 100644 --- a/config/sync/field.field.paragraph.content_list.field_content_list.yml +++ b/config/sync/field.field.paragraph.content_list.field_content_list.yml @@ -26,6 +26,7 @@ settings: default: default preselect_views: all_citizen_proposals: all_citizen_proposals + all_decisions: all_decisions all_early_inclusion: all_early_inclusion all_hearings: all_hearings all_meetings: all_meetings diff --git a/config/sync/views.view.all_decisions.yml b/config/sync/views.view.all_decisions.yml new file mode 100644 index 000000000..1d541742d --- /dev/null +++ b/config/sync/views.view.all_decisions.yml @@ -0,0 +1,323 @@ +uuid: f703dd7b-377a-404c-bbbe-e637da5d0578 +langcode: da +status: true +dependencies: + config: + - core.entity_view_mode.node.teaser + - node.type.decision + - taxonomy.vocabulary.area + module: + - better_exposed_filters + - node + - taxonomy + - user +id: all_decisions +label: 'Alle afgørelser' +module: views +description: 'En liste af alle tidligere afgørelser' +tag: '' +base_table: node_field_data +base_field: nid +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: title + plugin_id: field + label: '' + exclude: false + alter: + alter_text: false + make_link: false + absolute: false + word_boundary: false + ellipsis: false + strip_tags: false + trim: false + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + pager: + type: full + options: + offset: 0 + pagination_heading_level: h4 + items_per_page: 15 + total_pages: null + id: 0 + tags: + next: ›› + previous: ‹‹ + first: '« First' + last: 'Last »' + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + exposed_form: + type: bef + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + input_required: false + text_input_required: 'Vælg et filter og klik på Anvend for at se resultater' + text_input_required_format: filtered_html + bef: + general: + autosubmit: true + autosubmit_exclude_textfield: true + autosubmit_textfield_delay: 500 + autosubmit_textfield_minimum_length: 3 + autosubmit_hide: true + input_required: false + allow_secondary: false + secondary_label: 'Avancerede indstillinger' + secondary_open: false + text_input_required: 'Vælg et filter og klik på Anvend for at se resultater' + text_input_required_format: basic_html + reset_button_always_show: false + filter: + field_area_target_id: + plugin_id: default + advanced: + sort_options: false + rewrite: + filter_rewrite_values: "- Any -|Område\r\n- Enhver -|Vælg område" + filter_rewrite_values_key: false + collapsible: false + collapsible_disable_automatic_open: false + is_secondary: false + hide_label: true + field_project_category_target_id: + plugin_id: default + advanced: + sort_options: false + rewrite: + filter_rewrite_values: "- Any -|Alle\r\n- Enhver -|Alle" + filter_rewrite_values_key: false + collapsible: false + collapsible_disable_automatic_open: false + is_secondary: false + hide_label: true + access: + type: perm + options: + perm: 'access content' + cache: + type: tag + options: { } + empty: + area_text_custom: + id: area_text_custom + table: views + field: area_text_custom + relationship: none + group_type: group + admin_label: '' + plugin_id: text_custom + empty: true + content: '' + tokenize: false + sorts: + created: + id: created + table: node_field_data + field: created + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: created + plugin_id: date + order: DESC + expose: + label: '' + field_identifier: created + exposed: false + granularity: second + arguments: { } + filters: + status: + id: status + table: node_field_data + field: status + entity_type: node + entity_field: status + plugin_id: boolean + value: '1' + group: 1 + expose: + operator: '' + operator_limit_selection: false + operator_list: { } + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: type + plugin_id: bundle + operator: in + value: + decision: decision + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + field_area_target_id: + id: field_area_target_id + table: node__field_area + field: field_area_target_id + relationship: none + group_type: group + admin_label: '' + plugin_id: taxonomy_index_tid + operator: or + value: { } + group: 1 + exposed: true + expose: + operator_id: field_area_target_id_op + label: Område + description: '' + use_operator: false + operator: field_area_target_id_op + operator_limit_selection: false + operator_list: { } + identifier: field_area_target_id + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + editor: '0' + administrator: '0' + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + reduce_duplicates: false + vid: area + type: select + hierarchy: false + limit: true + error_message: true + style: + type: default + options: + row_class: '' + default_row_class: false + uses_fields: false + row: + type: 'entity:node' + options: + relationship: none + view_mode: teaser + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: { } + css_class: '' + use_ajax: false + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - 'user.node_grants:view' + - user.permissions + tags: { } diff --git a/config/sync/views.view.all_early_inclusion.yml b/config/sync/views.view.all_early_inclusion.yml index 93cab80df..10c106e4c 100644 --- a/config/sync/views.view.all_early_inclusion.yml +++ b/config/sync/views.view.all_early_inclusion.yml @@ -14,7 +14,7 @@ dependencies: id: all_early_inclusion label: 'Alle tidlig dialog' module: views -description: 'En liste af alle projekter' +description: 'En liste af alle tidligere dialoger' tag: '' base_table: node_field_data base_field: nid diff --git a/web/themes/custom/hoeringsportal/assets/css/module/_animated-svg.scss b/web/themes/custom/hoeringsportal/assets/css/module/_animated-svg.scss index 03a01b138..b56607fde 100644 --- a/web/themes/custom/hoeringsportal/assets/css/module/_animated-svg.scss +++ b/web/themes/custom/hoeringsportal/assets/css/module/_animated-svg.scss @@ -1,4 +1,4 @@ -a:has(svg) { + a:has(svg) { /* prettier-ignore */ --ease-spring-lazy: linear(0, 0.008 1.1%, 0.034 2.3%, 0.134 4.9%, 0.264 7.3%, 0.683 14.3%, 0.797 16.5%, 0.89 18.6%, 0.967 20.7%, 1.027 22.8%, 1.073 25%, 1.104 27.3%, 1.123 30.6%, 1.119 34.3%, 1.018 49.5%, 0.988 58.6%, 0.985 65.2%, 1 84.5%, 1); /* prettier-ignore */ diff --git a/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig b/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig index f3b58f9fc..008aea279 100644 --- a/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig +++ b/web/themes/custom/hoeringsportal/templates/components/header-default.html.twig @@ -24,11 +24,11 @@ {% endif %}

{{ title }}

-
+
{{ description }}
{% if right_content %} -
+
{% for element in right_content %}
@@ -42,10 +42,12 @@
{% endif %} {% if element.type is same as('link') %} - +
+
{{ element.label }}
+ +
{% endif %}
- {% endfor %}
diff --git a/web/themes/custom/hoeringsportal/templates/content/node--decision--teaser.html.twig b/web/themes/custom/hoeringsportal/templates/content/node--decision--teaser.html.twig new file mode 100755 index 000000000..a7998d85b --- /dev/null +++ b/web/themes/custom/hoeringsportal/templates/content/node--decision--teaser.html.twig @@ -0,0 +1,9 @@ +{# Template for Project teaser extending base-card #} + +{% extends 'themes/custom/hoeringsportal/templates/components/base-card.html.twig' %} + +{% block card_content %} + {{ node.field_teaser.value|truncate(95, true, true) }} + {{ content.field_project_category }} + {{ content.field_area }}{{ content.field_type }} +{% endblock %} diff --git a/web/themes/custom/hoeringsportal/templates/field/field--field-type.html.twig b/web/themes/custom/hoeringsportal/templates/field/field--field-type.html.twig new file mode 100755 index 000000000..bfa38e836 --- /dev/null +++ b/web/themes/custom/hoeringsportal/templates/field/field--field-type.html.twig @@ -0,0 +1,61 @@ +{# +/** + * @file + * Theme override for a field. + * + * To override output, copy the "field.html.twig" from the templates directory + * to your theme's directory and customize it, just like customizing other + * Drupal templates such as page.html.twig or node.html.twig. + * + * Instead of overriding the theming for all fields, you can also just override + * theming for a subset of fields using + * @link themeable Theme hook suggestions. @endlink For example, + * here are some theme hook suggestions that can be used for a field_foo field + * on an article node type: + * - field--node--field-foo--article.html.twig + * - field--node--field-foo.html.twig + * - field--node--article.html.twig + * - field--field-foo.html.twig + * - field--text-with-summary.html.twig + * - field.html.twig + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - multiple: TRUE if a field can contain multiple items. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item's content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see template_preprocess_field() + */ +#} + +{% if label_hidden %} + {% if multiple %} + {% for item in items %} + {{ item.content }} + {% endfor %} + {% else %} + {% for item in items %} + {{ item.content }} + {% endfor %} + {% endif %} +{% else %} +
{{ label }}
+ {% if multiple %} +
+ {% endif %} + {% for item in items %} + {{ item.content }} + {% endfor %} + {% if multiple %} +
+ {% endif %} +{% endif %} From 24c1f49cf1dba7ee192532425d2446ca28389caa Mon Sep 17 00:00:00 2001 From: martinyde Date: Tue, 18 Nov 2025 14:08:13 +0100 Subject: [PATCH 3/7] Added role for decisions --- config/sync/user.role.page_editor.yml | 2 +- config/sync/user.role.public_meeting_editor.yml | 2 +- docker-compose.oidc.yml | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config/sync/user.role.page_editor.yml b/config/sync/user.role.page_editor.yml index dfc335354..bcec29aa9 100644 --- a/config/sync/user.role.page_editor.yml +++ b/config/sync/user.role.page_editor.yml @@ -22,7 +22,7 @@ dependencies: - view_unpublished id: page_editor label: Sideredaktør -weight: -2 +weight: -1 is_admin: null permissions: - 'access content overview' diff --git a/config/sync/user.role.public_meeting_editor.yml b/config/sync/user.role.public_meeting_editor.yml index f89f2291b..0046dabf0 100644 --- a/config/sync/user.role.public_meeting_editor.yml +++ b/config/sync/user.role.public_meeting_editor.yml @@ -23,7 +23,7 @@ dependencies: - view_unpublished id: public_meeting_editor label: Begivenhedsredaktør -weight: -3 +weight: -2 is_admin: null permissions: - 'access content overview' diff --git a/docker-compose.oidc.yml b/docker-compose.oidc.yml index 1128b0b7c..ab498479c 100644 --- a/docker-compose.oidc.yml +++ b/docker-compose.oidc.yml @@ -64,6 +64,8 @@ services: "--user-claims", '{"sub": "dialogue_editor", "email": "dialogue_editor@example.com", "roles": ["dialogue_editor"]}', "--user-claims", + '{"sub": "decision_editor", "email": "decision_editor@example.com", "roles": ["decision_editor"]}', + "--user-claims", '{"sub": "project_editor", "email": "project_editor@example.com", "roles": ["project_editor"]}', "--user-claims", '{"sub": "hearing_editor", "email": "hearing_editor@example.com", "roles": ["hearing_editor"]}', From 5d84de9e9724fae92ed05cbd675e654d1f8185b2 Mon Sep 17 00:00:00 2001 From: martinyde Date: Tue, 18 Nov 2025 14:08:15 +0100 Subject: [PATCH 4/7] Added role for decisions --- ...n.user_add_role_action.decision_editor.yml | 14 ++++++ ...ser_remove_role_action.decision_editor.yml | 14 ++++++ config/sync/user.role.decision_editor.yml | 43 +++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 config/sync/system.action.user_add_role_action.decision_editor.yml create mode 100644 config/sync/system.action.user_remove_role_action.decision_editor.yml create mode 100644 config/sync/user.role.decision_editor.yml diff --git a/config/sync/system.action.user_add_role_action.decision_editor.yml b/config/sync/system.action.user_add_role_action.decision_editor.yml new file mode 100644 index 000000000..8c8a1182f --- /dev/null +++ b/config/sync/system.action.user_add_role_action.decision_editor.yml @@ -0,0 +1,14 @@ +uuid: 8248590d-2db6-47e9-a71c-d7b6ad8aae78 +langcode: da +status: true +dependencies: + config: + - user.role.decision_editor + module: + - user +id: user_add_role_action.decision_editor +label: 'Add the Beslutningsredaktør role to the selected user(s)' +type: user +plugin: user_add_role_action +configuration: + rid: decision_editor diff --git a/config/sync/system.action.user_remove_role_action.decision_editor.yml b/config/sync/system.action.user_remove_role_action.decision_editor.yml new file mode 100644 index 000000000..8620ac977 --- /dev/null +++ b/config/sync/system.action.user_remove_role_action.decision_editor.yml @@ -0,0 +1,14 @@ +uuid: e0257c0a-9d68-4955-a937-8c2e6232180a +langcode: da +status: true +dependencies: + config: + - user.role.decision_editor + module: + - user +id: user_remove_role_action.decision_editor +label: 'Remove the Beslutningsredaktør role from the selected user(s)' +type: user +plugin: user_remove_role_action +configuration: + rid: decision_editor diff --git a/config/sync/user.role.decision_editor.yml b/config/sync/user.role.decision_editor.yml new file mode 100644 index 000000000..d19d9836f --- /dev/null +++ b/config/sync/user.role.decision_editor.yml @@ -0,0 +1,43 @@ +uuid: 0c53448d-d4bd-4375-99d0-efadc99b5c0c +langcode: da +status: true +dependencies: + config: + - media.type.document + - media.type.image + - node.type.decision + module: + - media + - node + - publishcontent + - quick_node_clone + - system + - view_unpublished +id: decision_editor +label: Beslutningsredaktør +weight: -3 +is_admin: null +permissions: + - 'access content overview' + - 'access media overview' + - 'clone decision content' + - 'create decision content' + - 'create document media' + - 'create image media' + - 'create media' + - 'delete any decision content' + - 'delete decision revisions' + - 'delete own decision content' + - 'delete own document media' + - 'delete own image media' + - 'edit any decision content' + - 'edit own decision content' + - 'edit own document media' + - 'edit own image media' + - 'publish any node type decision' + - 'revert decision revisions' + - 'unpublish any node type decision' + - 'update media' + - 'view any unpublished decision content' + - 'view own unpublished media' + - 'view the administration theme' From cfbbe0ce5cdf1bd833abedaf8ec9ddf33ea12873 Mon Sep 17 00:00:00 2001 From: martinyde Date: Tue, 18 Nov 2025 14:50:05 +0100 Subject: [PATCH 5/7] Added fixtures --- .../hoeringsportal_base_fixtures.services.yml | 5 + .../src/Fixture/DecisionFixture.php | 122 ++++++++++++++++++ .../src/Fixture/PublicMeetingFixture.php | 1 + 3 files changed, 128 insertions(+) create mode 100644 web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/DecisionFixture.php diff --git a/web/modules/custom/hoeringsportal_base_fixtures/hoeringsportal_base_fixtures.services.yml b/web/modules/custom/hoeringsportal_base_fixtures/hoeringsportal_base_fixtures.services.yml index c376c8017..093c41cca 100644 --- a/web/modules/custom/hoeringsportal_base_fixtures/hoeringsportal_base_fixtures.services.yml +++ b/web/modules/custom/hoeringsportal_base_fixtures/hoeringsportal_base_fixtures.services.yml @@ -76,6 +76,11 @@ services: tags: - { name: content_fixture } + Drupal\hoeringsportal_base_fixtures\Fixture\DecisionFixture: + tags: + - { name: content_fixture } + Drupal\hoeringsportal_base_fixtures\Fixture\UserFixture: tags: - { name: content_fixture } + diff --git a/web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/DecisionFixture.php b/web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/DecisionFixture.php new file mode 100644 index 000000000..8e425db37 --- /dev/null +++ b/web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/DecisionFixture.php @@ -0,0 +1,122 @@ + 'content_block', + ]) + ->set('field_paragraph_title', 'Det er et godt spørgsmål …') + ->set('field_content_block_text', [ + 'value' => <<<'BODY' +

Sagittis mattis scelerisque habitasse elit etiam lobortis accumsan. Dignissim ac sapien potenti ipsum nam penatibus leo. Facilisi potenti laoreet et scelerisque sem felis rutrum.

+BODY, + 'format' => 'filtered_html', + ]); + $paragraph->save(); + + $node = Node::create([ + 'type' => 'decision', + 'title' => 'En vigtig afgørelse', + 'status' => TRUE, + 'field_decision' => 'vedtaget', + 'field_teaser' => 'Test teaser', + 'field_area' => [ + $this->getReference('area:Hele kommunen'), + ], + 'field_top_images' => [ + $this->getReference('media:Large1'), + $this->getReference('media:Large2'), + $this->getReference('media:Large3'), + ], + 'field_type' => [ + $this->getReference('type:Klima'), + ], + 'field_related_content' => [ + $this->getReference('node:citizen_proposal:Proposal1'), + $this->getReference('node:hearing:Hearing2') + ], + 'field_content_sections' => [ + 'target_id' => $paragraph->id(), + 'target_revision_id' => $paragraph->getRevisionId(), + ], + ]); + + $node->save(); + $this->addReference('node:decision:En vigtig afgørelse', $node); + + $node = Node::create([ + 'type' => 'decision', + 'title' => 'En ny afgørelse afvist', + 'status' => TRUE, + 'field_decision' => 'afvist', + 'field_teaser' => 'Test teaser', + 'field_area' => [ + $this->getReference('area:Hele kommunen'), + ], + 'field_top_images' => [ + $this->getReference('media:Large1'), + ], + 'field_type' => [ + $this->getReference('type:Klima'), + ], + 'field_related_content' => [ + $this->getReference('node:hearing:Hearing1'), + $this->getReference('node:dialogue:Test Dialogue - proposals full'), + $this->getReference('project_page:Hvad er byudvikling?') + ], + 'field_content_sections' => [ + 'target_id' => $paragraph->id(), + 'target_revision_id' => $paragraph->getRevisionId(), + ], + ]); + + $node->save(); + $this->addReference('node:decision:En ny afgørelse afvist', $node); + } + + /** + * {@inheritdoc} + */ + public function getDependencies() { + return [ + MediaFixture::class, + CitizenProposalFixture::class, + HearingFixture::class, + DialogueFixture::class, + ProjectPageFixture::class, + TermDepartmentFixture::class, + TermAreaFixture::class, + TermTypeFixture::class, + ]; + } + + /** + * {@inheritdoc} + */ + public function getGroups() { + return ['node', 'decision']; + } + +} diff --git a/web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/PublicMeetingFixture.php b/web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/PublicMeetingFixture.php index b9127e259..f99d7907b 100644 --- a/web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/PublicMeetingFixture.php +++ b/web/modules/custom/hoeringsportal_base_fixtures/src/Fixture/PublicMeetingFixture.php @@ -400,6 +400,7 @@ public function getDependencies() { TermTypeFixture::class, PretixConfigFixture::class, UserFixture::class, + DecisionFixture::class, ]; } From fcc95d38817fe572f8ac76d52874e2de4450b82a Mon Sep 17 00:00:00 2001 From: martinyde Date: Wed, 19 Nov 2025 11:40:57 +0100 Subject: [PATCH 6/7] Updated config --- config/sync/core.extension.yml | 7 +++++++ config/sync/views.view.latest_citizen_proposals.yml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index 4287ac84c..ef43ab11c 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -20,6 +20,7 @@ module: config: 0 config_ignore: 0 config_import_locale: 0 + content_fixtures: 0 crop: 0 csv_serialization: 0 ctools: 0 @@ -45,20 +46,26 @@ module: filter: 0 flag: 0 hoeringsportal_audit_log: 0 + hoeringsportal_base_fixtures: 0 hoeringsportal_citizen_proposal: 0 hoeringsportal_citizen_proposal_archiving: 0 + hoeringsportal_citizen_proposal_fixtures: 0 hoeringsportal_config_settings: 0 hoeringsportal_content_access: 0 hoeringsportal_content_blocks: 0 hoeringsportal_data: 0 hoeringsportal_deskpro: 0 hoeringsportal_dialogue: 0 + hoeringsportal_dialogue_fixtures: 0 hoeringsportal_forms: 0 hoeringsportal_hearing: 0 + hoeringsportal_hearing_fixtures: 0 hoeringsportal_openid_connect: 0 + hoeringsportal_project_fixtures: 0 hoeringsportal_project_timeline: 0 hoeringsportal_public_meeting: 0 hoeringsportal_quicklinks: 0 + hoeringsportal_test_delta_sync_fixtures: 0 honeypot: 0 image: 0 image_captcha: 0 diff --git a/config/sync/views.view.latest_citizen_proposals.yml b/config/sync/views.view.latest_citizen_proposals.yml index 8b965e90d..e386ede31 100644 --- a/config/sync/views.view.latest_citizen_proposals.yml +++ b/config/sync/views.view.latest_citizen_proposals.yml @@ -13,7 +13,7 @@ dependencies: id: latest_citizen_proposals label: 'Seneste borgerforslag' module: views -description: 'En liste af alle høringer' +description: 'En liste af alle borgerforslag' tag: '' base_table: node_field_data base_field: nid From 382e28fb2161e12e383579248ecfa05c625e43af Mon Sep 17 00:00:00 2001 From: martinyde Date: Wed, 19 Nov 2025 11:41:05 +0100 Subject: [PATCH 7/7] Updated config --- config/sync/views.view.latest_decisions.yml | 247 ++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 config/sync/views.view.latest_decisions.yml diff --git a/config/sync/views.view.latest_decisions.yml b/config/sync/views.view.latest_decisions.yml new file mode 100644 index 000000000..6d82d685f --- /dev/null +++ b/config/sync/views.view.latest_decisions.yml @@ -0,0 +1,247 @@ +uuid: 6b45041d-ec92-4293-8944-ef994cf06af7 +langcode: da +status: true +dependencies: + config: + - core.entity_view_mode.node.teaser + - node.type.decision + module: + - better_exposed_filters + - node + - user +id: latest_decisions +label: 'Seneste afgørelser' +module: views +description: 'En liste af seneste afgørelser' +tag: '' +base_table: node_field_data +base_field: nid +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: title + plugin_id: field + label: '' + exclude: false + alter: + alter_text: false + make_link: false + absolute: false + word_boundary: false + ellipsis: false + strip_tags: false + trim: false + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + pager: + type: some + options: + offset: 0 + items_per_page: 3 + exposed_form: + type: bef + options: + submit_button: Apply + reset_button: false + reset_button_label: Reset + exposed_sorts_label: Sortér + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + input_required: false + text_input_required: 'Select any filter and click on Apply to see results' + text_input_required_format: filtered_html + bef: + general: + autosubmit: true + autosubmit_exclude_textfield: true + autosubmit_textfield_delay: 500 + autosubmit_textfield_minimum_length: 3 + autosubmit_hide: true + input_required: false + allow_secondary: false + secondary_label: 'Advanced options' + secondary_open: false + text_input_required: 'Select any filter and click on Apply to see results' + text_input_required_format: basic_html + reset_button_always_show: false + sort: + plugin_id: default + advanced: + combine: true + combine_rewrite: "Afstemning start Desc|Nyeste\r\nAfstemning start Asc|Ældste" + reset: false + reset_label: '' + collapsible: false + collapsible_label: 'Sort options' + is_secondary: false + hide_label: true + filter: + field_content_state_value: + plugin_id: default + advanced: + sort_options: false + rewrite: + filter_rewrite_values: "- Any -|Alle\r\n- Enhver -|Alle\r\nAfsluttet|Afstemning afsluttet\r\nI gang|Afstemning aktiv\r\nKommende|" + filter_rewrite_values_key: false + collapsible: false + collapsible_disable_automatic_open: false + is_secondary: false + hide_label: true + access: + type: perm + options: + perm: 'access content' + cache: + type: tag + options: { } + empty: { } + sorts: + created: + id: created + table: node_field_data + field: created + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: created + plugin_id: date + order: DESC + expose: + label: '' + field_identifier: '' + exposed: false + granularity: second + arguments: { } + filters: + status: + id: status + table: node_field_data + field: status + entity_type: node + entity_field: status + plugin_id: boolean + value: '1' + group: 1 + expose: + operator: '' + operator_limit_selection: false + operator_list: { } + type: + id: type + table: node_field_data + field: type + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: type + plugin_id: bundle + operator: in + value: + decision: decision + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + filter_groups: + operator: AND + groups: + 1: AND + style: + type: default + options: + grouping: { } + row_class: '' + default_row_class: true + uses_fields: false + row: + type: 'entity:node' + options: + relationship: none + view_mode: teaser + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: { } + use_ajax: false + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - 'user.node_grants:view' + - user.permissions + tags: { }