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 \t- Indsigtsret: Du har ret til at se de oplysninger vi behandler om dig.
\n \t- Rettelse: Du har ret til at få urigtige oplysninger om dig rettet
\n \t- Sletning: Du kan i sjældne tilfælde have ret til at få slettet oplysninger om dig inden vores normale slettefrist indtræder
\n \t- Begrænsning af behandling: Du har i visse tilfælde ret til at få behandling af dine personoplysninger begrænset.
\n \t- Indsigelse: Du har i visse tilfælde ret til at gøre indsigelse mod vores behandling af dine personoplysninger.
\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);
+ }
+
+}