diff --git a/composer.json b/composer.json index 1337c88..a299701 100644 --- a/composer.json +++ b/composer.json @@ -36,6 +36,7 @@ "drupal/masquerade": "2.0.0-beta4", "drupal/queue_mail": "1.3.0", "drupal/queue_ui": "^2.1", + "drupal/r4032login": "^2.1", "drupal/rules": "3.0.0-alpha6", "drupal/rules_token": "1.2.0", "drupal/rules_webform": "1.5.0", diff --git a/config/optional/maestro.maestro_template.ppr_flow.yml b/config/optional/maestro.maestro_template.multiple_parties_flow.yml similarity index 63% rename from config/optional/maestro.maestro_template.ppr_flow.yml rename to config/optional/maestro.maestro_template.multiple_parties_flow.yml index 2b4c04b..6c34476 100644 --- a/config/optional/maestro.maestro_template.ppr_flow.yml +++ b/config/optional/maestro.maestro_template.multiple_parties_flow.yml @@ -1,26 +1,25 @@ -langcode: da status: true dependencies: enforced: module: - os2forms_forloeb -id: ppr_flow -label: 'PPR flow' +id: multiple_parties_flow +label: 'Flow med to parter' app_group: 0 canvas_height: 900 -canvas_width: 800 +canvas_width: 1000 default_workflow_timeline_stage_count: 4 -show_details: false +show_details: true validated: true views_attached: - maestro_completed_tasks: - view_machine_name: maestro_completed_tasks - view_weight: -9 - view_display: default;Master maestro_entity_identifiers: view_machine_name: maestro_entity_identifiers view_weight: -10 view_display: 'taskconsole_display;Task Console Display' + maestro_completed_tasks: + view_machine_name: maestro_completed_tasks + view_weight: -9 + view_display: default;Master variables: initiator: variable_id: initiator @@ -34,6 +33,12 @@ variables: workflow_current_stage_message: variable_id: workflow_current_stage_message variable_value: '' + part_one_id: + variable_id: part_one_id + variable_value: '' + part_two_id: + variable_id: part_two_id + variable_value: '' initiator: null workflow_timeline_stage_count: null workflow_current_stage: null @@ -43,10 +48,10 @@ tasks: id: start tasktype: MaestroStart label: Start - nextstep: form + nextstep: 'set_part_1,set_part_2' nextfalsestep: '' - top: '0' - left: '270' + top: '50' + left: '280' assignby: fixed assignto: engine end: @@ -55,18 +60,18 @@ tasks: label: End nextstep: '' nextfalsestep: '' - top: '630' - left: '270' + top: '710' + left: '290' assignby: fixed assignto: engine - form: - id: form - label: 'Formular PPR' + form2: + id: form2 + label: 'Formular part 2' tasktype: MaestroWebform - nextstep: 'form_parent,form2' + nextstep: all nextfalsestep: '' - top: '75' - left: '265' + top: '227' + left: '457' assignby: fixed assignto: '' raphael: '' @@ -75,22 +80,22 @@ tasks: falsebranch: '' lines: { } data: - unique_id: submission - webform_machine_name: ppr_test + unique_id: part2 + webform_machine_name: part_2_formular modal: notmodal - skip_webform_handlers: 0 + skip_webform_handlers: 1 webform_nodes_attached_to: none use_nodes_attached: 0 webform_nodes_attached_variable: none redirect_to: taskconsole - show_edit_form: 0 - assigned: '' + show_edit_form: 1 + assigned: 'user:variable:part_two_id' runonce: false handler: '' showindetail: true participate_in_workflow_status_stage: true workflow_status_stage_number: 1 - workflow_status_stage_message: '' + workflow_status_stage_message: 'Afventer svar fra part 2' notifications: notification_assignment_subject: '' notification_assignment: '' @@ -100,52 +105,15 @@ tasks: notification_escalation: '' reminder_after: 0 escalation_after: 0 - parent1_accept: - id: parent1_accept - label: 'Forælder 1 accept' - tasktype: MaestroIf - nextstep: 'all,cancel' - nextfalsestep: '' - top: '322' - left: '482' - assignby: fixed - assignto: '' - raphael: '' - to: '' - pointedfrom: '' - falsebranch: '' - lines: { } - data: - if: - method: bylasttaskstatus - variable: initiator - operator: '=' - variable_value: '' - status: '1' - assigned: '' - runonce: false - handler: '' - showindetail: true - participate_in_workflow_status_stage: false - workflow_status_stage_number: 0 - workflow_status_stage_message: '' - notifications: - notification_assignment_subject: null - notification_assignment: null - notification_reminder_subject: null - notification_reminder: null - notification_escalation_subject: null - notification_escalation: null - reminder_after: null - escalation_after: null - parent2_accept: - id: parent2_accept - label: 'Forælder 2 accept' - tasktype: MaestroIf - nextstep: 'all,cancel' + notification_assignments: 'user:variable:part_two_id:assignment' + send: + id: send + label: Afsend + tasktype: MaestroBatchFunction + nextstep: end nextfalsestep: '' - top: '335' - left: '5' + top: '610' + left: '290' assignby: fixed assignto: '' raphael: '' @@ -153,16 +121,9 @@ tasks: pointedfrom: '' falsebranch: '' lines: { } - data: - if: - method: bylasttaskstatus - variable: initiator - operator: '=' - variable_value: '' - status: '1' + handler: end_notification_batch_function assigned: '' runonce: false - handler: '' showindetail: true participate_in_workflow_status_stage: false workflow_status_stage_number: 0 @@ -176,14 +137,14 @@ tasks: notification_escalation: null reminder_after: null escalation_after: null - form_parent: - id: form_parent - label: 'Formular forælder' + form1: + id: form1 + label: 'Formular part 1' tasktype: MaestroWebform - nextstep: parent1_accept + nextstep: all nextfalsestep: '' - top: '190' - left: '370' + top: '245' + left: '95' assignby: fixed assignto: '' raphael: '' @@ -192,22 +153,22 @@ tasks: falsebranch: '' lines: { } data: - unique_id: submission - webform_machine_name: indstilling_til_paedagogisk_psyk + unique_id: part1 + webform_machine_name: part_1_formular modal: notmodal - skip_webform_handlers: 0 + skip_webform_handlers: 1 webform_nodes_attached_to: none use_nodes_attached: 0 webform_nodes_attached_variable: none redirect_to: taskconsole - show_edit_form: 0 - assigned: '' + show_edit_form: 1 + assigned: 'user:variable:part_one_id,user:variable:part_one_id' runonce: false handler: '' showindetail: true participate_in_workflow_status_stage: true - workflow_status_stage_number: 2 - workflow_status_stage_message: '' + workflow_status_stage_number: 1 + workflow_status_stage_message: 'Afventer accept fra part 1' notifications: notification_assignment_subject: '' notification_assignment: '' @@ -217,14 +178,15 @@ tasks: notification_escalation: '' reminder_after: 0 escalation_after: 0 - send: - id: send - label: Afsend - tasktype: MaestroBatchFunction - nextstep: end + notification_assignments: 'user:variable:part_one_id:assignment' + all: + id: all + label: 'alle svaret' + tasktype: MaestroAnd + nextstep: se_samlet nextfalsestep: '' - top: '520' - left: '270' + top: '400' + left: '290' assignby: fixed assignto: '' raphael: '' @@ -232,13 +194,13 @@ tasks: pointedfrom: '' falsebranch: '' lines: { } - handler: maestro_dummy_batch_function assigned: '' runonce: false + handler: '' showindetail: true - participate_in_workflow_status_stage: false - workflow_status_stage_number: 0 - workflow_status_stage_message: '' + participate_in_workflow_status_stage: true + workflow_status_stage_number: 2 + workflow_status_stage_message: 'Alle parter har svaret' notifications: notification_assignment_subject: null notification_assignment: null @@ -248,14 +210,14 @@ tasks: notification_escalation: null reminder_after: null escalation_after: null - form2: - id: form2 - label: 'Formular forælder' - tasktype: MaestroWebform - nextstep: parent2_accept + set_part_1: + id: set_part_1 + label: 'Set Part 1 Responsible' + tasktype: MaestroSetProcessVariable + nextstep: form1 nextfalsestep: '' - top: '180' - left: '170' + top: '117' + left: '127' assignby: fixed assignto: '' raphael: '' @@ -264,39 +226,34 @@ tasks: falsebranch: '' lines: { } data: - unique_id: submission - webform_machine_name: indstilling_til_paedagogisk_psyk - modal: notmodal - skip_webform_handlers: 0 - webform_nodes_attached_to: none - use_nodes_attached: 0 - webform_nodes_attached_variable: none - redirect_to: taskconsole - show_edit_form: 0 + spv: + variable: part_one_id + method: bycontentfunction + variable_value: 'os2forms_forloeb_spv_fetch_entity_username:submission,part1' assigned: '' runonce: false handler: '' showindetail: true - participate_in_workflow_status_stage: true - workflow_status_stage_number: 2 + participate_in_workflow_status_stage: false + workflow_status_stage_number: 0 workflow_status_stage_message: '' notifications: - notification_assignment_subject: '' - notification_assignment: '' - notification_reminder_subject: '' - notification_reminder: '' - notification_escalation_subject: '' - notification_escalation: '' - reminder_after: 0 - escalation_after: 0 - all: - id: all - label: 'alle svaret' - tasktype: MaestroAnd - nextstep: send + notification_assignment_subject: null + notification_assignment: null + notification_reminder_subject: null + notification_reminder: null + notification_escalation_subject: null + notification_escalation: null + reminder_after: null + escalation_after: null + set_part_2: + id: set_part_2 + label: 'Set Part 2 Responsible' + tasktype: MaestroSetProcessVariable + nextstep: form2 nextfalsestep: '' - top: '430' - left: '270' + top: '122' + left: '422' assignby: fixed assignto: '' raphael: '' @@ -304,12 +261,17 @@ tasks: pointedfrom: '' falsebranch: '' lines: { } + data: + spv: + variable: part_two_id + method: bycontentfunction + variable_value: 'os2forms_forloeb_spv_fetch_entity_username:submission,part2' assigned: '' runonce: false handler: '' showindetail: true - participate_in_workflow_status_stage: true - workflow_status_stage_number: 3 + participate_in_workflow_status_stage: false + workflow_status_stage_number: 0 workflow_status_stage_message: '' notifications: notification_assignment_subject: null @@ -320,14 +282,14 @@ tasks: notification_escalation: null reminder_after: null escalation_after: null - cancel: - id: cancel - label: 'PPR afvist af forældre' - tasktype: MaestroInteractive - nextstep: message + se_samlet: + id: se_samlet + label: 'Se samlet' + tasktype: MaestroWebformMultiple + nextstep: send nextfalsestep: '' - top: '250' - left: '270' + top: '500' + left: '290' assignby: fixed assignto: '' raphael: '' @@ -335,12 +297,19 @@ tasks: pointedfrom: '' falsebranch: '' lines: { } - handler: maestro_show_message_form data: - modal: modal + unique_id: se_samlet + webform_machine_name: opsamlingsformular_til_flere_par + modal: notmodal + skip_webform_handlers: 0 + webform_nodes_attached_to: none + use_nodes_attached: 0 + webform_nodes_attached_variable: none redirect_to: taskconsole + show_edit_form: 1 assigned: 'user:variable:initiator' runonce: false + handler: '' showindetail: true participate_in_workflow_status_stage: false workflow_status_stage_number: 0 @@ -354,40 +323,3 @@ tasks: notification_escalation: '' reminder_after: 0 escalation_after: 0 - notification_assignments: 'user:variable:initiator:assignment' - message: - id: message - label: message - tasktype: MaestroSetProcessVariable - nextstep: '' - nextfalsestep: '' - top: '335' - left: '265' - assignby: fixed - assignto: '' - raphael: '' - to: '' - pointedfrom: '' - falsebranch: '' - lines: { } - data: - spv: - variable: initiator - method: hardcoded - variable_value: 'En af forældrene har afvist PPR indstillingen og den bliver derfor ikke igangsat.' - assigned: '' - runonce: false - handler: '' - showindetail: true - participate_in_workflow_status_stage: false - workflow_status_stage_number: 0 - workflow_status_stage_message: '' - notifications: - notification_assignment_subject: null - notification_assignment: null - notification_reminder_subject: null - notification_reminder: null - notification_escalation_subject: null - notification_escalation: null - reminder_after: null - escalation_after: null diff --git a/config/optional/r4032login.settings.yml b/config/optional/r4032login.settings.yml new file mode 100644 index 0000000..f42e581 --- /dev/null +++ b/config/optional/r4032login.settings.yml @@ -0,0 +1,12 @@ +display_denied_message: true +access_denied_message: 'Du skal logge på for at få se denne side.' +access_denied_message_type: status +redirect_authenticated_users_to: '' +user_login_path: /user/login +default_redirect_code: 307 +destination_parameter_override: '' +match_noredirect_pages: '' +redirect_to_destination: true +langcode: da +_core: + default_config_hash: PMB0aJrA5afgG0swQ81b31o6ax8keNE22FKGnQH81EQ diff --git a/config/optional/webform.webform.hk_grundskabelon.yml b/config/optional/webform.webform.grundskabelon.yml similarity index 99% rename from config/optional/webform.webform.hk_grundskabelon.yml rename to config/optional/webform.webform.grundskabelon.yml index c6375e8..e40953d 100644 --- a/config/optional/webform.webform.hk_grundskabelon.yml +++ b/config/optional/webform.webform.grundskabelon.yml @@ -33,9 +33,9 @@ weight: 0 uid: 4 template: false archive: false -id: hk_grundskabelon -title: 'HK grundskabelon' -description: 'Denne webform er oprettet ud fra HK's grundskabelon' +id: grundskabelon +title: 'Grundskabelon' +description: 'Denne webform er oprettet ud fra Holstebro Kommunes grundskabelon' category: '' elements: "forlob_type:\n '#type': hidden\n '#title': 'Forløb type'\nsbsip_rules_flow:\n '#type': value\n '#title': 'A SBSIP Afleveringsregel'\n '#value': |\n //Her skal slette de regler som ikke gælder for denne formular.\n //Hvis der skal afleveres til SBSYS skal du også redigere sbsip_xml elementet\n sbsys_standard //Hvis sag eksisterer bliver dokument tilføjet eller ny sag\n sbsys_ny //Opret altid en ny SBSYS sag\n sbsys_direkte_sag_2 //aflever direkte til en sag, husk at udfylde sbsys_sags_nr\n digital_post //Aflever kvittering til digital post\n \n '#default_value': digital_post\nsbsys_sags_nr:\n '#type': value\n '#title': 'B sbsys_sags_nr // bruges ved sbsys_direkte_sag_2 ellers tom'\nsbsip_xml:\n '#type': webform_attachment_os2forms_sbsys_xml\n '#os2formsId': _custom_\n '#os2formsId_custom': angiv_uuid_her\n '#sagSkabelonId': _custom_\n '#sagSkabelonId_custom': 'angiv SBSYS sagsskabelon id'\n '#nemid_cpr': default_nemid_value\n '#nemid_name': default_nemid_value\n '#nemid_address': default_nemid_value\n '#nemid_zipcode': default_nemid_value\n '#nemid_city': default_nemid_value\n '#bodyText': _custom_\n '#bodyText_custom': |\n Tak - vi har nu modtaget de indtastede oplysninger. Du kan se dem i den vedhæftede kvittering.\n \n Venlig hilsen\n Holstebro Kommune\n \n '#MaaSendesTilDFF': ja\n '#title': 'C SBSIP XML // 1 ) Angiv altid UUID, 2) Angiv SBSYS skabelon id ved sbsip_rules_flow(sbsys_standard eller sbsys_ny)'\n '#filename': os2forms.xml\nlogind_oplysninger:\n '#type': webform_wizard_page\n '#title': Start\n cpr:\n '#type': os2forms_nemid_cpr\n '#title': Cpr\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n navn:\n '#type': os2forms_nemid_name\n '#title': Navn\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n privat_adresse:\n '#type': os2forms_nemid_address\n '#title': Adresse\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n cvr:\n '#type': os2forms_nemid_company_cvr\n '#title': CVR\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n firmanavn:\n '#type': os2forms_nemid_company_name\n '#title': Firmanavn\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n adresse:\n '#type': os2forms_nemid_company_address\n '#title': Adresse\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n firma_by:\n '#type': os2forms_nemid_company_city\n '#title': 'Postnummer og By'\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n flexboxlogind:\n '#type': webform_flexbox\n introtekstfeltgruppe:\n '#type': fieldset\n '#title': Kontaktoplysninger\n '#title_display': invisible\n '#flex': 3\n introtekst:\n '#type': processed_text\n '#text': |\n

(Evt. beskriv hvad brugeren skal have klar på forhånd, eller anden vigtig information) 

\n \n

Du er allerede logget ind. Du kan logge ud igen med linket i højre kolonne under dine personoplysninger.

\n \n

 

\n \n '#format': full_html\n flexbox_01:\n '#type': webform_flexbox\n oplysninger:\n '#type': container\n '#flex': 3\n e_mail_:\n '#type': email\n '#title': E-mail\n '#states_clear': false\n telefon:\n '#type': tel\n '#title': Telefon\n '#states_clear': false\n '#telephone_validation_format': '2'\n '#telephone_validation_country': DK\n tom:\n '#type': container\n '#flex': 3\n du_er_logget_ind_som:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_1:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\n nemidlogin:\n '#type': os2forms_nemid_nemlogin_link\n '#nemlogin_link_login_text': 'Log på'\n '#nemlogin_link_logout_text': 'Log af'\n samtykkeerklaering:\n '#type': fieldset\n '#title': 'Samtykke eller oplysningspligt'\n '#flex': 3\n databeskyttelse:\n '#type': checkboxes\n '#title': Databeskyttelse\n '#title_display': none\n '#options':\n 'Ja, jeg accepterer kommunens registrering og eventuelle videregivelse af oplysninger.': 'Jeg accepterer kommunens registrering og eventuelle videregivelse af oplysninger.'\n '#options_all_value': ''\n '#options_all_text': ''\n '#options_none_value': ''\n '#options_none_text': ''\n databeskyttelsestekst:\n '#type': webform_more\n '#more_title': 'Læs mere om samtykke'\n '#more': |\n


\n Holstebro Kommune registrerer dine oplysninger og kan videregive disse til andre offentlige myndigheder, private virksomheder m.fl., der har lovmæssigt krav på oplysningerne eller samarbejder med kommunen. Du har ret til at kende de oplysninger, kommunen har registreret om dig lige som du kan kræve forkerte oplysninger rettet eller slettet.

\n \n

Du kan kontakte Holstebro Kommunes databeskyttelsesrådgiveren om de rettigheder, du har i henhold til databeskyttelseslovgivningen. Du har ret til at klage til Datatilsynet over kommunens behandling af dine personlige oplysninger. På www.holstebro.dk/databeskyttelse kan du læse mere og finde kontaktoplysninger.
\n  

\n \n oplysningspligt:\n '#type': webform_more\n '#more_title': 'Læs mere om oplysningspligt'\n '#more': |\n


\n Holstebro Kommune er dataansvarlig for behandlingen af de personoplysninger, som vi har modtaget om dig.

\n \n

Kontaktoplysninger:
\n Mail: 
\n Evt. Tlf:

\n \n

Vi behandler dine personoplysninger til følgende formål

\n \n

(skriv kort og forståeligt, hvad formålene er med at behandle personoplysningerne)

\n \n

Retsgrundlaget for vores behandling af dine personoplysninger følger af

\n \n

(Beskriv retsgrundlaget/retsgrundlagene for behandlingen, herunder f.eks. kapitlet i den lov eller bekendtgørelse, der pålægger jer at indsamle personoplysningerne. Hvis behandlingen er baseret på databeskyttelsesforordningens eller databeskyttelseslovens behandlingsbestemmelser, skal du henvise til den relevante bestemmelse.)

\n \n

Vi behandler følgende kategorier af personoplysninger om dig

\n \n

 (Skriv hvilken slags oplysninger der behandles fx kontaktoplysninger og cpr, økonomiske forhold, uddannelse. Hvis nogle af følgende kategorier behandles, skal det fremgå: Oplysninger om straffedomme eller lovovertrædelser, helbred, religion, fagforening, politisk eller filosofisk overbevisning, race eller etnicitet, seksuel orientering, biometrisk data til identifikation.)

\n \n

Vi videregiver eller overlader dine personoplysninger til

\n \n

(Skriv hvem der modtager oplysningerne fx SKAT, UDK, politiet, samarbejdspartnere eller virksomheder)

\n \n

Vi henter personoplysninger om dig fra (HVIS RELEVANT)

\n \n

(skriv hvor oplysninger hentes, fx fra SKAT, Folkeregistret, BBR , andre offentlige myndigheder.)

\n \n

Vi gemmer dine personoplysninger i (HVIS RELEVANT)

\n \n

(angiv tidsrum fx 5 år efter sagen er afsluttet, 6 måneder efter vi har afsluttet ansættelsen etc. Hvis ikke det er muligt at angive præcis tidsrum, skriv i stedet hvilke kriterier der lægger til grund for opbevaringstiden) Vi foretager en automatisk afgørelse ud fra (beskriv hvilken afgørelse der træffes og ud fra hvilke kriterier det sker. Skriv hvilken konsekvens det kan få for den registrerede)

\n \n

Du har mulighed for at trække dit samtykke tilbage

\n \n

Det gør du ved at kontakte os på ovenstående kontaktoplysninger. Hvis du trækker dit samtykke tilbage, påvirker det kun den fremadrettede behandling af dine personoplysninger.

\n \n

Du har følgende rettigheder jf. databeskyttelsesforordningen

\n \n \n \n

Du har ret til at klage til Datatilsynet, hvis du er utilfreds med vores behandling af dine personoplysninger. Se mere på datatilsynet.dk

\n \nudfyld:\n '#type': webform_wizard_page\n '#title': Udfyld\n flexbox_kontaktopl:\n '#type': webform_flexbox\n tekst_side2:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_3:\n '#type': fieldset\n '#title': 'Du er logget ind som:'\n brugerinformation_2:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nudfyld_2:\n '#type': webform_wizard_page\n '#title': 'Udfyld 2'\n flexbox_02:\n '#type': webform_flexbox\n skriv_forklarende_overskrift:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst2:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_4:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_3:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nudfyld_3:\n '#type': webform_wizard_page\n '#title': 'Udfyld 3'\n flexbox_03:\n '#type': webform_flexbox\n skriv_forklarende_overskrift_6:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst10:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_7:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_4:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nafslut_det_videre_forloeb:\n '#type': webform_wizard_page\n '#title': Afslut\n afslutning:\n '#type': processed_text\n '#text': |\n

(Beskriv efterfølgende forløb - Hvad kan borgeren forvente nu?

\n \n

Eksempelvis: Din ansøgning vil blive behandlet snarest og du vil modtage en afgørelse inden for 14 dage.)

\n \n '#format': full_html\nactions:\n '#type': webform_actions\n '#title': 'Submit button(s)'\n '#submit__label': 'Send XXX'\nvedhaeftet_pdf:\n '#type': 'webform_entity_print_attachment:pdf'\n '#title': 'D Vedhæftet PDF'\n '#filename': HK-Kvittering.pdf\n '#link_title': Kvittering\n '#view_mode': twig\n '#template': |\n

Kvittering

\n

[webform:title]

\n

Indsendt den [webform_submission:created:custom:d-m-Y - H:i]

\n \n [webform_submission:values:logind_oplysninger:html]\n \n [webform_submission:values:udfyld:format:html]\n \n [webform_submission:values:udfyld_2:format:html]\n \n [webform_submission:values:udfyld_3:format:html]" css: '' diff --git a/config/optional/webform.webform.indstilling_til_ppr.yml b/config/optional/webform.webform.indstilling_til_ppr.yml deleted file mode 100644 index 1bd4b41..0000000 --- a/config/optional/webform.webform.indstilling_til_ppr.yml +++ /dev/null @@ -1,202 +0,0 @@ -langcode: da -status: open -dependencies: - module: - - os2forms - - webform_entity_print -third_party_settings: - os2forms: - os2forms_nemid: - webform_type: '' - nemlogin_auto_redirect: 0 - webform_entity_print: - template: - header: '' - footer: '' - css: '' - export_types: - pdf: - enabled: false - link_text: '' - link_attributes: { } - word_docx: - enabled: false - link_text: '' - link_attributes: { } - webform_revisions: - contentEntity_id: null -open: null -close: null -weight: 0 -uid: 1 -template: false -archive: false -id: indstilling_til_ppr -title: 'Indstilling til Pædagogisk Psykoligisk Rådgivning (PPR)' -description: "Indstillingsskemaet anvendes, når der ønskes sparring/vejledning/vurdering ift. enkelte børn
\n \n" -category: MBU -elements: "institution_og_dagtilbud_skole_page:\n '#type': webform_wizard_page\n '#title': 'Institution og dagtilbud/skole'\n institution_og_dagtilbud_skole_section:\n '#type': webform_section\n '#title': 'Institution og dagtilbud/skole'\n institution_og_dagtilbud_eller_skole_select:\n '#type': select\n '#title': 'Institution og dagtilbud eller skole'\n '#options':\n institution_og_dagtilbud: 'Institution og dagtilbud'\n skole: Skole\n navn_institution_og_dagtilbud_text:\n '#type': textfield\n '#title': 'Navn institution og dagtilbud'\n '#states':\n visible:\n ':input[name=\"institution_og_dagtilbud_eller_skole_select\"]':\n value: institution_og_dagtilbud\n navn_skole_text:\n '#type': textfield\n '#title': 'Navn skole'\n '#states':\n visible:\n ':input[name=\"institution_og_dagtilbud_eller_skole_select\"]':\n value: skole\n institution_og_dagtilbud_skole_adresse_dawa:\n '#type': os2forms_dawa_address\n '#title': Adresse\n '#states':\n visible:\n ':input[name=\"institution_og_dagtilbud_eller_skole_select\"]':\n filled: true\n institution_og_dagtilbud_skole_telefon_telephone:\n '#type': tel\n '#title': Telefon\n '#states':\n visible:\n ':input[name=\"institution_og_dagtilbud_eller_skole_select\"]':\n filled: true\n '#international_preferred_countries': { }\n institution_og_dagtilbud_skole_email_email:\n '#type': email\n '#title': Email\n '#states':\n visible:\n ':input[name=\"institution_og_dagtilbud_eller_skole_select\"]':\n filled: true\n institution_og_dagtilbud_skole_leder_text:\n '#type': textfield\n '#title': Leder\n '#states':\n visible:\n ':input[name=\"institution_og_dagtilbud_eller_skole_select\"]':\n filled: true\nbarn_page:\n '#type': webform_wizard_page\n '#title': Barn\n barn_section:\n '#type': webform_section\n '#title': Barn\n barn_navn_text:\n '#type': textfield\n '#title': Navn\n barn_cpr_nr_text:\n '#type': textfield\n '#title': CPR-nr\n barn_adresse_dawa:\n '#type': os2forms_dawa_address\n '#title': Adresse\n barn_klasse_text:\n '#type': textfield\n '#title': Klasse\n '#states':\n visible:\n ':input[name=\"institution_og_dagtilbud_eller_skole_select\"]':\n value: skole\nforaeldreoplysninger_page:\n '#type': webform_wizard_page\n '#title': Forældreoplysninger\n foraeldreoplysninger_section:\n '#type': webform_section\n '#title': Forældreoplysninger\n foraeldreoplysninger_navn_first_parent_text:\n '#type': textfield\n '#title': Navn\n foraeldreoplysninger_cpr_nr_first_parent_text:\n '#type': textfield\n '#title': CPR-nr\n foraeldreoplysninger_adresse_first_parent_dawa:\n '#type': os2forms_dawa_address\n '#title': Adresse\n foraeldreoplysninger_telefon_privat_first_parent_telephone:\n '#type': tel\n '#title': 'Tlf. privat'\n '#international_preferred_countries': { }\n foraeldreoplysninger_telefon_arbejde_first_parent_telephone:\n '#type': tel\n '#title': 'Tlf. arbejde'\n '#international_preferred_countries': { }\n foraeldreoplysninger_foraeldremyndighedsindehaver_first_parent:\n '#type': checkbox\n '#title': 'Forældremyndighedsindehaver '\n foraeldreoplysninger_horizontal_rule:\n '#type': webform_horizontal_rule\n foraeldreoplysninger_navn_second_parent_text:\n '#type': textfield\n '#title': Navn\n foraeldreoplysninger_cpr_nr_second_parent_text:\n '#type': textfield\n '#title': CPR-nr\n foraeldreoplysninger_adresse_second_parent_dawa:\n '#type': os2forms_dawa_address\n '#title': Adresse\n foraeldreoplysninger_telefon_privat_second_parent_telephone:\n '#type': tel\n '#title': 'Tlf. privat'\n '#international_preferred_countries': { }\n foraeldreoplysninger_telefon_arbejde_second_parent_telephone:\n '#type': tel\n '#title': 'Tlf. arbejde'\n '#international_preferred_countries': { }\n foraeldreoplysninger_foraeldremyndighedsindehaver_second_parent:\n '#type': checkbox\n '#title': Forældremyndighedsindehaver\n foraeldreoplysninger_horizontal_rule_1:\n '#type': webform_horizontal_rule\n foraeldreoplysninger_der_bor_bruges_tolk_ved_kontakt_til_hjemmet:\n '#type': checkbox\n '#title': 'Der bør bruges tolk ved kontakt til hjemmet'\n foraeldreoplysninger_hvilket_sprog_text:\n '#type': textfield\n '#title': 'Hvilket sprog'\n '#states':\n visible:\n ':input[name=\"foraeldreoplysninger_der_bor_bruges_tolk_ved_kontakt_til_hjemmet\"]':\n checked: true\nindstilling_med_henblik_paa_page:\n '#type': webform_wizard_page\n '#title': 'Indstilling med henblik på'\n indstilling_med_henblik_paa_section:\n '#type': webform_section\n '#title': 'Indstilling med henblik på'\n indstilling_med_henblik_paa_vurdering_af_tale_sprog_sparring:\n '#type': checkbox\n '#title': 'Vurdering af tale-sprog/sparring - efter aftale på Trivselsmøde/Specialcentermøde'\n indstilling_med_henblik_paa_psykologisk_vurdering_sparring:\n '#type': checkbox\n '#title': 'Psykologisk vurdering/sparring - efter aftale på Trivselsmøde/Specialcentermøde '\n har_barnet_vaeret_er_barnet_indstillet_til_section:\n '#type': webform_section\n '#title': 'Har barnet været/er barnet indstillet til'\n har_barnet_vaeret_indstillet_kommunikation_og_handicap_checkbox:\n '#type': checkbox\n '#title': 'Institut for Kommunikation og Handicap'\n har_barnet_vaeret_indstillet_boerne_og_ungdomspsykiatrisk:\n '#type': checkbox\n '#title': 'Børne- og Ungdomspsykiatrisk Afdeling'\n har_barnet_vaeret_indstillet_socialforvaltningen:\n '#type': checkbox\n '#title': Socialforvaltningen\noplysninger_fra_dagtilbud_skole_page:\n '#type': webform_wizard_page\n '#title': 'Oplysninger fra dagtilbud/skole'\n oplysninger_fra_dagtilbud_skole_section:\n '#type': webform_section\n '#title': 'Oplysninger fra dagtilbud/skole'\n dato_for_droeftelse_af_indstillingen_i_trivselsmoede_specialcent:\n '#type': date\n '#title': 'Dato for drøftelse af indstillingen i Trivselsmøde/Specialcentermøde'\n '#datepicker': true\n '#datepicker_button': true\n referat_el_lign_skal_vedlaegges_:\n '#type': managed_file\n '#title': 'Referat el.lign. skal vedlægges:'\n hvad_har_givet_anledning_til_indstillingen_:\n '#type': textarea\n '#title': 'Hvad har givet anledning til indstillingen?'\n i_hvilke_sammenhaenge_forekommer_vanskelighederne_hyppigst_sjael:\n '#type': textarea\n '#title': 'I hvilke sammenhænge forekommer vanskelighederne hyppigst/sjældent?'\n beskriv_barnets_sproglige_og_kommunikative_funktionsniveau:\n '#type': textarea\n '#title': 'Beskriv barnets sproglige og kommunikative funktionsniveau'\n barnet_er_undersoegt_af_en_oerelaege:\n '#type': checkbox\n '#title': 'Barnet er undersøgt af en ørelæge'\n beskriv_barnets_foelelsesmaessige_udvikling:\n '#type': textarea\n '#title': 'Beskriv barnets følelsesmæssige udvikling'\n beskriv_barnets_faglige_funktionsniveau_i_dansk_og_matematik:\n '#type': textarea\n '#title': 'Beskriv barnets faglige funktionsniveau i dansk og matematik'\n hvilke_fokusomraader_har_personalet_haft_i_forhold_til_barnet:\n '#type': textarea\n '#title': 'Hvilke fokusområder har personalet haft i forhold til barnet'\n beskriv_barnets_sociale_kompetencer:\n '#type': textarea\n '#title': 'Beskriv barnets sociale kompetencer'\n beskriv_boernefaellesskabet_og_hvordan_barnet_indgaar_der:\n '#type': textarea\n '#title': 'Beskriv børnefællesskabet og hvordan barnet indgår der'\n hvordan_samarbejder_i_med_foraeldrene:\n '#type': textarea\n '#title': 'Hvordan samarbejder I med forældrene'\n andre_relevante_oplysninger:\n '#type': textarea\n '#title': 'Andre relevante oplysninger'\n hvilke_forventninger_har_i_til_ppr:\n '#type': textarea\n '#title': 'Hvilke forventninger har I til PPR'\n eventuelle_bemaerkninger_til_indstillingen_fra_foraeldremyndighe:\n '#type': textarea\n '#title': 'Eventuelle bemærkninger til indstillingen fra forældremyndighedsindehaver(e)'\n" -css: '' -javascript: '' -settings: - ajax: false - ajax_scroll_top: '' - ajax_progress_type: '' - ajax_effect: '' - ajax_speed: null - page: true - page_submit_path: '' - page_confirm_path: '' - page_admin_theme: false - form_title: both - form_submit_once: false - form_exception_message: '' - form_open_message: '' - form_close_message: '' - form_previous_submissions: true - form_confidential: false - form_confidential_message: '' - form_remote_addr: true - form_convert_anonymous: false - form_prepopulate: false - form_prepopulate_source_entity: false - form_prepopulate_source_entity_required: false - form_prepopulate_source_entity_type: '' - form_reset: false - form_disable_autocomplete: false - form_novalidate: false - form_disable_inline_errors: false - form_required: false - form_unsaved: false - form_disable_back: false - form_submit_back: false - form_autofocus: false - form_details_toggle: false - form_access_denied: default - form_access_denied_title: '' - form_access_denied_message: '' - form_access_denied_attributes: { } - form_file_limit: '' - submission_label: '' - submission_log: false - submission_views: { } - submission_views_replace: { } - submission_user_columns: { } - submission_user_duplicate: false - submission_access_denied: default - submission_access_denied_title: '' - submission_access_denied_message: '' - submission_access_denied_attributes: { } - submission_exception_message: '' - submission_locked_message: '' - submission_excluded_elements: { } - submission_exclude_empty: false - submission_exclude_empty_checkbox: false - previous_submission_message: '' - previous_submissions_message: '' - autofill: false - autofill_message: '' - autofill_excluded_elements: { } - wizard_progress_bar: true - wizard_progress_pages: false - wizard_progress_percentage: false - wizard_progress_link: false - wizard_progress_states: false - wizard_start_label: '' - wizard_preview_link: false - wizard_confirmation: true - wizard_confirmation_label: '' - wizard_track: '' - preview: 0 - preview_label: '' - preview_title: '' - preview_message: '' - preview_attributes: { } - preview_excluded_elements: { } - preview_exclude_empty: true - preview_exclude_empty_checkbox: false - draft: none - draft_multiple: false - draft_auto_save: false - draft_saved_message: '' - draft_loaded_message: '' - draft_pending_single_message: '' - draft_pending_multiple_message: '' - confirmation_type: page - confirmation_title: '' - confirmation_message: '' - confirmation_url: '' - confirmation_attributes: { } - confirmation_back: true - confirmation_back_label: '' - confirmation_back_attributes: { } - confirmation_exclude_query: false - confirmation_exclude_token: false - confirmation_update: false - limit_total: null - limit_total_interval: null - limit_total_message: '' - limit_total_unique: false - limit_user: null - limit_user_interval: null - limit_user_message: '' - limit_user_unique: false - entity_limit_total: null - entity_limit_total_interval: null - entity_limit_user: null - entity_limit_user_interval: null - purge: none - purge_days: null - results_disabled: false - results_disabled_ignore: false - token_view: false - token_update: false -access: - create: - roles: - - anonymous - - authenticated - users: { } - permissions: { } - view_any: - roles: { } - users: { } - permissions: { } - update_any: - roles: { } - users: { } - permissions: { } - delete_any: - roles: { } - users: { } - permissions: { } - purge_any: - roles: { } - users: { } - permissions: { } - view_own: - roles: { } - users: { } - permissions: { } - update_own: - roles: { } - users: { } - permissions: { } - delete_own: - roles: { } - users: { } - permissions: { } - administer: - roles: { } - users: { } - permissions: { } - test: - roles: { } - users: { } - permissions: { } - configuration: - roles: { } - users: { } - permissions: { } -handlers: { } -variants: { } diff --git a/config/optional/webform.webform.opsamlingsformular_til_flere_par.yml b/config/optional/webform.webform.opsamlingsformular_til_flere_par.yml new file mode 100644 index 0000000..9f1431b --- /dev/null +++ b/config/optional/webform.webform.opsamlingsformular_til_flere_par.yml @@ -0,0 +1,199 @@ +langcode: da +status: open +dependencies: + module: + - webform_revisions +third_party_settings: + webform_revisions: + contentEntity_id: '11' +open: null +close: null +weight: 0 +uid: 1 +template: false +archive: false +id: opsamlingsformular_til_flere_par +title: 'Opsamlingsformular til flere parter' +description: 'Et eksempel på den formular, der opsamler feltdata fra parterne i et sagsbehandlingsforløb.' +category: Maestro +elements: "part1_indsendelse:\n '#type': fieldset\n '#title': 'Part1 indsendelse'\n part1_navn:\n '#type': textfield\n '#title': Navn\n part1_adresse:\n '#type': os2forms_dawa_address\n '#title': Adresse\n part1_cpr_nummer:\n '#type': textfield\n '#title': CPR-nummer\n part1_e_mail:\n '#type': email\n '#title': E-mail\n part1_telefon:\n '#type': tel\n '#title': Telefon\n part1_beskrivelse:\n '#type': textarea\n '#title': Beskrivelse\npart2_indsendelse:\n '#type': fieldset\n '#title': 'Part2 indsendelse'\n part2_navn:\n '#type': textfield\n '#title': Navn\n part2_adresse:\n '#type': os2forms_dawa_address\n '#title': Adresse\n part2_cpr_nummer:\n '#type': textfield\n '#title': CPR-nummer\n part2_e_mail:\n '#type': email\n '#title': E-mail\n part2_telefon:\n '#type': tel\n '#title': Telefon\n part2_beskrivelse:\n '#type': textarea\n '#title': Beskrivelse\nsagsbehandler_beskrivelse:\n '#type': textarea\n '#title': 'Sagsbehandler beskrivelse'" +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: both + form_submit_once: false + form_exception_message: '' + form_open_message: '' + form_close_message: '' + form_previous_submissions: true + form_confidential: false + form_confidential_message: '' + form_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_reset: false + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_unsaved: false + form_disable_back: false + form_submit_back: false + form_autofocus: false + form_details_toggle: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_log: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + submission_exception_message: '' + submission_locked_message: '' + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: false + wizard_progress_states: false + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '' + wizard_track: '' + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + preview: 0 + preview_label: '' + preview_title: '' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: none + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: page + confirmation_title: '' + confirmation_message: '' + confirmation_url: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: all + purge_days: 30 + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: { } +variants: { } diff --git a/config/optional/webform.webform.indstilling_til_paedagogisk_psyk.yml b/config/optional/webform.webform.part_1_formular.yml similarity index 86% rename from config/optional/webform.webform.indstilling_til_paedagogisk_psyk.yml rename to config/optional/webform.webform.part_1_formular.yml index e47c5a3..873c3a6 100644 --- a/config/optional/webform.webform.indstilling_til_paedagogisk_psyk.yml +++ b/config/optional/webform.webform.part_1_formular.yml @@ -1,17 +1,22 @@ langcode: da status: open -dependencies: { } +dependencies: + module: + - webform_revisions +third_party_settings: + webform_revisions: + contentEntity_id: '8' open: null close: null weight: 0 -uid: 10 +uid: 1 template: false archive: false -id: indstilling_til_paedagogisk_psyk -title: 'Indstilling til Pædagogisk Psykoligisk Rådgivning (PPR) - forælder accept' -description: 'Forælder godkendelse.' -category: MBU -elements: "godkendelse_af_indstilling:\n '#type': webform_wizard_page\n '#title': 'Godkendelse af indstilling'\n navn:\n '#type': os2forms_nemid_name\n '#title': Navn\n '#multiple': false\n '#readonly': true\n terms_of_service:\n '#type': webform_terms_of_service\n '#title': Accepter\n '#terms_title': 'Accepter at dine og dit barns oplysninger sendes videre til PPR og at der igangsættes et PPR forløb.'\n '#terms_content': 'Bla bla'" +id: part_1_formular +title: 'Part 1 formular' +description: 'Et eksempel på en formular til første part i et selvebetjeningsforløb.' +category: Maestro +elements: "navn:\n '#type': textfield\n '#title': Navn\nadresse:\n '#type': os2forms_dawa_address\n '#title': Adresse\ncpr_nummer:\n '#type': textfield\n '#title': CPR-nummer\ne_mail:\n '#type': email\n '#title': E-mail\ntelefon:\n '#type': tel\n '#title': Telefon\nbeskrivelse:\n '#type': textarea\n '#title': Beskrivelse" css: '' javascript: '' settings: @@ -134,8 +139,8 @@ settings: entity_limit_total_interval: null entity_limit_user: null entity_limit_user_interval: null - purge: none - purge_days: null + purge: all + purge_days: 30 results_disabled: false results_disabled_ignore: false results_customize: false diff --git a/config/optional/webform.webform.ppr_test.yml b/config/optional/webform.webform.part_2_formular.yml similarity index 87% rename from config/optional/webform.webform.ppr_test.yml rename to config/optional/webform.webform.part_2_formular.yml index d4cd568..8f5cc84 100644 --- a/config/optional/webform.webform.ppr_test.yml +++ b/config/optional/webform.webform.part_2_formular.yml @@ -1,17 +1,22 @@ langcode: da status: open -dependencies: { } +dependencies: + module: + - webform_revisions +third_party_settings: + webform_revisions: + contentEntity_id: '10' open: null close: null weight: 0 -uid: 10 +uid: 1 template: false archive: false -id: ppr_test -title: 'PPR Test' -description: 'test af flow' -category: MBU -elements: "side_1:\n '#type': webform_wizard_page\n '#title': 'Side 1'\n foraelder_1_id:\n '#type': textfield\n '#title': 'Forælder 1 id'\n foraelder_2_id:\n '#type': textfield\n '#title': 'Forælder 2 id'" +id: part_2_formular +title: 'Part 2 formular' +description: 'Et eksempel på en formular til anden part i et selvebetjeningsforløb.' +category: Maestro +elements: "navn:\n '#type': textfield\n '#title': Navn\nadresse:\n '#type': os2forms_dawa_address\n '#title': Adresse\ncpr_nummer:\n '#type': textfield\n '#title': CPR-nummer\ne_mail:\n '#type': email\n '#title': E-mail\ntelefon:\n '#type': tel\n '#title': Telefon\nbeskrivelse:\n '#type': textarea\n '#title': Beskrivelse" css: '' javascript: '' settings: @@ -134,8 +139,8 @@ settings: entity_limit_total_interval: null entity_limit_user: null entity_limit_user_interval: null - purge: none - purge_days: null + purge: all + purge_days: 30 results_disabled: false results_disabled_ignore: false results_customize: false diff --git a/config/optional/webform.webform.barsel_erklaering_ved_graviditet.yml b/config/optional/webform.webform.start_forloeb_med_to_parter.yml similarity index 70% rename from config/optional/webform.webform.barsel_erklaering_ved_graviditet.yml rename to config/optional/webform.webform.start_forloeb_med_to_parter.yml index d3c6472..2e88bbb 100644 --- a/config/optional/webform.webform.barsel_erklaering_ved_graviditet.yml +++ b/config/optional/webform.webform.start_forloeb_med_to_parter.yml @@ -1,43 +1,24 @@ -langcode: da +uuid: cbddd0e0-b410-4d6b-a5ae-cefdc418f08e +langcode: en status: open dependencies: module: - maestro_webform - - os2forms - - webform_entity_print - webform_revisions third_party_settings: webform_revisions: - contentEntity_id: '2' - os2forms: - os2forms_nemid: - webform_type: '' - nemlogin_auto_redirect: 0 - webform_entity_print: - template: - header: '' - footer: '' - css: '' - export_types: - pdf: - enabled: true - link_text: '' - link_attributes: { } - word_docx: - enabled: false - link_text: '' - link_attributes: { } + contentEntity_id: '3' open: null close: null weight: 0 -uid: 4 +uid: 1 template: false archive: false -id: barsel_erklaering_ved_graviditet -title: 'Barsel: Erklæring ved graviditet' -description: '' -category: '' -elements: "send_til:\n '#type': hidden\n '#title': 'Send til'\n '#default_value': mn@magenta-aps.dk\n '#prepopulate': true\nflow_type:\n '#type': hidden\n '#title': 'Flow type'\n '#default_value': barsel\nside:\n '#type': webform_wizard_page\n '#title': Side\n fulde_navn:\n '#type': textfield\n '#title': 'Fulde navn'\n '#required': true\n az_ident:\n '#type': textfield\n '#title': Az-ident\n '#required': true\n privat_e_mail:\n '#type': email\n '#title': 'Privat e-mail'\n '#required': true\n privat_telefonnummer:\n '#type': tel\n '#title': 'Privat telefonnummer'\n '#required': true\n forventet_foedsel_termin_:\n '#type': date\n '#title': 'Forventet fødsel (termin)'\n '#required': true\n '#default_value': '2021-08-16'\n '#datepicker': true\n '#date_date_format': d-m-Y\n orlov_foer_foedsel:\n '#type': date\n '#title': 'Orlov før fødsel'\n '#required': true\n '#datepicker': true\n '#date_date_format': d-m-Y" +id: start_forloeb_med_to_parter +title: 'Start forløb med to parter' +description: 'Et eksempel på en formular til at starte sagsbehandlingsforløb med to parter.' +category: Maestro +elements: "side_1:\n '#type': webform_wizard_page\n '#title': 'Angiv parter'\n part1:\n '#type': entity_autocomplete\n '#title': part1\n '#target_type': user\n '#selection_handler': 'default:user'\n '#selection_settings':\n include_anonymous: false\n filter:\n type: _none\n part2:\n '#type': entity_autocomplete\n '#title': part2\n '#target_type': user\n '#selection_handler': 'default:user'\n '#selection_settings':\n include_anonymous: false\n filter:\n type: _none\nactions:\n '#type': webform_actions\n '#title': 'Send knap(per)'\n '#draft_hide': true\n '#draft__label': insend\n '#update__label': Opdater\n '#wizard_prev__label': tilbage\n '#wizard_next__label': frem" css: '' javascript: '' settings: @@ -85,12 +66,12 @@ settings: share_title: true share_page_body_attributes: { } submission_label: '' - submission_log: false + submission_log: true submission_views: { } submission_views_replace: { } submission_user_columns: { } submission_user_duplicate: false - submission_access_denied: default + submission_access_denied: page submission_access_denied_title: '' submission_access_denied_message: '' submission_access_denied_attributes: { } @@ -130,7 +111,7 @@ settings: preview_excluded_elements: { } preview_exclude_empty: true preview_exclude_empty_checkbox: false - draft: none + draft: all draft_multiple: false draft_auto_save: false draft_saved_message: '' @@ -160,13 +141,13 @@ settings: entity_limit_total_interval: null entity_limit_user: null entity_limit_user_interval: null - purge: none - purge_days: null + purge: all + purge_days: 30 results_disabled: false results_disabled_ignore: false results_customize: false token_view: false - token_update: false + token_update: true token_delete: false serial_disabled: false access: @@ -219,14 +200,14 @@ access: handlers: opret_forloeb_fra_flow: id: maestro - label: 'Opret forløb fra Flow' + label: 'Opret forløb med to parter' notes: '' handler_id: opret_forloeb_fra_flow status: true conditions: { } - weight: 0 + weight: -48 settings: - maestro_template: review_webform_submission - maestro_message_success: 'Din indsendelse vedrørende barsel er modtaget.' - maestro_message_failure: 'Der er sket en fejl med din indsendelse.' + maestro_template: multiple_parties_flow + maestro_message_success: '' + maestro_message_failure: '' variants: { } diff --git a/os2forms_forloeb.info.yml b/os2forms_forloeb.info.yml index ca5348c..1c59b7e 100644 --- a/os2forms_forloeb.info.yml +++ b/os2forms_forloeb.info.yml @@ -24,6 +24,7 @@ dependencies: - os2forms_sbsys - os2web_simplesaml - pathauto + - r4032login - redirect - rules - rules_token diff --git a/os2forms_forloeb.module b/os2forms_forloeb.module index b1c8bc8..45345e1 100644 --- a/os2forms_forloeb.module +++ b/os2forms_forloeb.module @@ -1,12 +1,15 @@ setSetting('purge_days', '30'); } + +/** + * Set Process Variable (SPV) function. + * + * Uses the webform's unique identifier referenced in the Maestro "webforms" + * process variable to read a value from the webform submission and return it + * to the SPV task to set the process variable in the task. + * The function assumes that the value to be extracted is the SID of a user + * and returns the username instead. + * This seems to be the easiest way to accomplish this. + * + * The "webforms" process variable is set by the Maestro Webforms + * submission handler which sets a "submission:xxx" value + * in the "webforms" process variable, where "xxx" is the unique ID + * of the submission, or is set by the Maestro Webform Task Type's + * "Unique Identifier" setting when editing a Maestro Webform Task. + * + * @param string $uniqueWebformIdentifier + * The webform's "Unique Identifier" as stored + * in the "webforms" process variable. + * @param string $webformFieldMachineName + * The webform field's machine name + * (listed as "KEY" in the webform builder) you wish to pull the value from. + * @param int $queueID + * Provided by the executing SPV task -- the QueueID of the SPV task. + * @param int $processID + * Provided by the executing SPV task -- the ProcessID of the workflow + * running the SPV task. + */ +function os2forms_forloeb_spv_fetch_entity_username($uniqueWebformIdentifier, $webformFieldMachineName, $queueID, $processID) { + $returnValue = 'unset'; + // This is the submission we're eventually after. + $sid = FALSE; + $sid = MaestroEngine::getEntityIdentiferByUniqueID($processID, $uniqueWebformIdentifier); + if ($sid) { + $webform_submission = WebformSubmission::load($sid); + } + if ($webform_submission && array_key_exists($webformFieldMachineName, $webform_submission->getData())) { + $returnValue = $webform_submission->getData()[$webformFieldMachineName]; + } + // At this point, the submission's value OR 'unset' is in the $returnValue. + if ($returnValue == 'unset' or !$returnValue) { + return $returnValue; + } + $account = User::load($returnValue); + $username = $account->getUsername(); + return $username; +} + +/** + * Implements hook_form_alter() for MaestroWebformMultiple task type. + * + * This has been copied from + * maestro/maestro_webform/maestro_webform.module with a minimal but + * necessary change. See https://www.drupal.org/project/maestro/issues/3243510 + * + */ +function os2forms_forloeb_form_alter(&$form, FormStateInterface $form_state, $form_id) { + $queueID = intval(\Drupal::request()->query->get('queueid', 0)); + $isMaestro = intval(\Drupal::request()->query->get('maestro', 0)); + // Both these keys need to exist. + if ($isMaestro && $queueID) { + $templateTask = MaestroEngine::getTemplateTaskByQueueID($queueID); + // We only care about Maestro Webform Multiple tasks. + if ($templateTask && $templateTask['tasktype'] == 'MaestroWebformMultiple') { + $storage = $form_state->getStorage(); + if ($storage && array_key_exists('form_display', $storage)) { + $webformTypes = \Drupal::entityTypeManager()->getStorage('node_type')->loadMultiple(); + $thisForm = $storage['form_display']->get('bundle'); + $targetEntityType = $storage['form_display']->get('targetEntityType'); + if ($isMaestro == 1 && + $targetEntityType == 'webform_submission' && + $templateTask['data']['webform_machine_name'] == $thisForm) { + // We now know this is a webform submission. We are going to add in our own form fields here. + $form['maestro'] = [ + '#tree' => TRUE, + ]; + + $form['maestro']['type'] = [ + '#type' => 'hidden', + '#default_value' => $thisForm, + '#required' => TRUE, + ]; + + $form['maestro']['queue_id'] = [ + '#type' => 'hidden', + '#default_value' => $queueID, + '#required' => TRUE, + ]; + + $form['maestro']['process_id'] = [ + '#type' => 'hidden', + '#default_value' => MaestroEngine::getProcessIdFromQueueId($queueID), + '#required' => TRUE, + ]; + + $form['actions']['submit']['#submit'][] = 'maestro_webform_webform_type_task_submit'; + + } + } + } + } +} diff --git a/src/Plugin/EngineTasks/MaestroSelectContentTask.php b/src/Plugin/EngineTasks/MaestroSelectContentTask.php index 9db66f9..1f24e7a 100644 --- a/src/Plugin/EngineTasks/MaestroSelectContentTask.php +++ b/src/Plugin/EngineTasks/MaestroSelectContentTask.php @@ -323,7 +323,8 @@ public function handleExecuteSubmit(array &$form, FormStateInterface $form_state $processID = MaestroEngine::getProcessIdFromQueueId($queueID); if (strstr($triggeringElement['#id'], 'edit-submit') !== FALSE && $queueID > 0) { - // If existing self-service page is chosen assign it to this process + // If existing self-service page is chosen simply assign it to this + // process. // If a new self-service is chosen create that self-service page // and assign it to this process. if ($form_state->getValue('new_webform')) { diff --git a/src/Plugin/EngineTasks/MaestroWebformMultipleTask.php b/src/Plugin/EngineTasks/MaestroWebformMultipleTask.php new file mode 100644 index 0000000..d6a55f8 --- /dev/null +++ b/src/Plugin/EngineTasks/MaestroWebformMultipleTask.php @@ -0,0 +1,152 @@ +processID = $configuration[0]; + $this->queueID = $configuration[1]; + } + } + + /** + * {@inheritDoc} + */ + public function shortDescription() { + return t('Webform task with Multiple Submissions'); + } + + /** + * {@inheritDoc} + */ + public function description() { + return $this->t('Webform task with Multiple Submissions'); + } + + /** + * {@inheritDoc} + * + * @see \Drupal\Component\Plugin\PluginBase::getPluginId() + */ + public function getPluginId() { + return 'MaestroWebformMultiple'; + } + + /** + * {@inheritDoc} + */ + public function getExecutableForm($modal, MaestroExecuteInteractive $parent) { + // If this is used properly, there's no submission associated with + // the current task. We will gather data from its predecessor tasks + // (collected by an AND task) and create a submission using their fields. + // + // First, get hold of the interesting previous tasks. + $templateMachineName = MaestroEngine::getTemplateIdFromProcessId($this->processID); + $taskMachineName = MaestroEngine::getTaskIdFromQueueId($this->queueID); + + $pointers = MaestroEngine::getTaskPointersFromTemplate( + $templateMachineName, $taskMachineName + ); + // Now, there can only be one task preceding this, the AND + // task collecting the submissions. Get the predecessors of the AND task. + $pointers = MaestroEngine::getTaskPointersFromTemplate( + $templateMachineName, $pointers[0] + ); + // Now, we query the queue to find the actual tasks (Maestro queue IDs) + // pointing to the AND task. + $query = \Drupal::entityQuery('maestro_queue'); + $andMainConditions = $query->andConditionGroup() + ->condition('process_id', $this->processID); + $orConditionGroup = $query->orConditionGroup(); + foreach ($pointers as $taskID) { + $orConditionGroup->condition('task_id', $taskID); + } + $andMainConditions->condition($orConditionGroup); + $query->condition($andMainConditions); + $queueIDs = $query->execute(); + + // This array will hold the key => value pairs for the fields + // to be copied to the final form. + $field_values = []; + + foreach ($queueIDs as $queueID) { + // Load the Maestro task with ID $pid. + $currentTask = MaestroEngine::getTemplateTaskByQueueID($queueID); + // Load its corresponding webform submission. + $taskUniqueSubmissionId = $currentTask['data']['unique_id']; + $webformMachineName = $currentTask['data']['webform_machine_name']; + $sid = MaestroEngine::getEntityIdentiferByUniqueID($this->processID, $taskUniqueSubmissionId); + if ($sid) { + $webform_submission = WebformSubmission::load($sid); + } + if (!$webform_submission) { + \Drupal::logger('os2forms_forloeb')->error( + "Predecessors MUSt have submissions with webforms attached." + ); + } + // Copy the fields of the webform submission to the values array. + foreach ($webform_submission->getData() as $key => $value) { + if ($value) { + $field_values[$taskUniqueSubmissionId . '_' . $key] = $value; + } + } + } + + // Now create webform submission, submit and attach to current process. + $templateTask = MaestroEngine::getTemplateTaskByQueueID($this->queueID); + $taskUniqueSubmissionId = $templateTask['data']['unique_id']; + $webformMachineName = $templateTask['data']['webform_machine_name']; + + $values = []; + $values['webform_id'] = $webformMachineName; + $values['data'] = $field_values; + + // Create submission. + $new_submission = WebformSubmission::create($values); + + $errors = WebformSubmissionForm::validateWebformSubmission($webform_submission); + + if (!empty($errors)) { + \Drupal::logger('os2forms_forloeb')->error( + "Can't create new submission: " . json_encode($errors) + ); + } + // Submit it. + $new_submission = WebformSubmissionForm::submitWebformSubmission($new_submission); + + // Attach it to the Maestro process. + $sid = $new_submission->id(); + MaestroEngine::createEntityIdentifier( + $this->processID, $new_submission->getEntityTypeId(), + $new_submission->bundle(), $taskUniqueSubmissionId, $sid + ); + + return parent::getExecutableForm($modal, $parent); + } + +}