diff --git a/config/sync/core.entity_form_display.node.digital_form.default.yml b/config/sync/core.entity_form_display.node.digital_form.default.yml
index c4f6558f42..8b3a11a5b7 100644
--- a/config/sync/core.entity_form_display.node.digital_form.default.yml
+++ b/config/sync/core.entity_form_display.node.digital_form.default.yml
@@ -5,15 +5,18 @@ dependencies:
config:
- field.field.node.digital_form.field_administration
- field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_expiration_date
- field.field.node.digital_form.field_last_saved_by_an_editor
- field.field.node.digital_form.field_meta_tags
- field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_respondent_burden
- field.field.node.digital_form.field_va_form_number
- node.type.digital_form
- workflows.workflow.editorial
module:
- change_labels
- content_moderation
+ - datetime
- field_group
- limited_field_widgets
- no_table_drag
@@ -29,7 +32,7 @@ third_party_settings:
label: 'Editorial Workflow'
region: content
parent_name: ''
- weight: 6
+ weight: 7
format_type: fieldset
format_settings:
classes: ''
@@ -38,6 +41,25 @@ third_party_settings:
description: ''
required_fields: true
description_display: after
+ group_omb_info:
+ children:
+ - field_respondent_burden
+ - field_omb_number
+ - field_expiration_date
+ label: 'OMB info'
+ region: content
+ parent_name: ''
+ weight: 4
+ format_type: fieldset
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ label_as_html: false
+ description: 'Text required by the Office of Management and Budget (OMB) to be present on all forms.'
+ required_fields: true
+ open: true
+ description_display: after
id: node.digital_form.default
targetEntityType: node
bundle: digital_form
@@ -45,7 +67,7 @@ mode: default
content:
field_chapters:
type: paragraphs_browser
- weight: 5
+ weight: 6
region: content
settings:
title: Step
@@ -78,6 +100,12 @@ content:
add_another: ''
no_table_drag:
no_table_drag: false
+ field_expiration_date:
+ type: datetime_default
+ weight: 9
+ region: content
+ settings: { }
+ third_party_settings: { }
field_last_saved_by_an_editor:
type: datetime_timestamp
weight: 2
@@ -86,12 +114,19 @@ content:
third_party_settings: { }
field_omb_number:
type: string_textfield
- weight: 4
+ weight: 8
region: content
settings:
size: 9
placeholder: XXXX-XXXX
third_party_settings: { }
+ field_respondent_burden:
+ type: number
+ weight: 7
+ region: content
+ settings:
+ placeholder: ''
+ third_party_settings: { }
field_va_form_number:
type: string_textfield
weight: 1
diff --git a/config/sync/core.entity_form_display.paragraph.digital_form_identification_info.default.yml b/config/sync/core.entity_form_display.paragraph.digital_form_identification_info.default.yml
new file mode 100644
index 0000000000..2fe15eca64
--- /dev/null
+++ b/config/sync/core.entity_form_display.paragraph.digital_form_identification_info.default.yml
@@ -0,0 +1,40 @@
+uuid: f6c77a23-cd2f-4a5b-9589-4a3ab27cab26
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.digital_form_identification_info.field_include_veteran_s_service
+ - field.field.paragraph.digital_form_identification_info.field_title
+ - paragraphs.paragraphs_type.digital_form_identification_info
+ module:
+ - textfield_counter
+id: paragraph.digital_form_identification_info.default
+targetEntityType: paragraph
+bundle: digital_form_identification_info
+mode: default
+content:
+ field_include_veteran_s_service:
+ type: boolean_checkbox
+ weight: 2
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_title:
+ type: string_textfield_with_counter
+ weight: 1
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ use_field_maxlength: false
+ maxlength: 0
+ counter_position: after
+ js_prevent_submit: true
+ count_only_mode: false
+ count_html_characters: true
+ textcount_status_message: 'Maxlength: @maxlength
Used: @current_length
Remaining: @remaining_count'
+ third_party_settings: { }
+hidden:
+ created: true
+ status: true
diff --git a/config/sync/core.entity_view_display.node.digital_form.default.yml b/config/sync/core.entity_view_display.node.digital_form.default.yml
index e94f3f02b4..66dee6e524 100644
--- a/config/sync/core.entity_view_display.node.digital_form.default.yml
+++ b/config/sync/core.entity_view_display.node.digital_form.default.yml
@@ -5,14 +5,37 @@ dependencies:
config:
- field.field.node.digital_form.field_administration
- field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_expiration_date
- field.field.node.digital_form.field_last_saved_by_an_editor
- field.field.node.digital_form.field_meta_tags
- field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_respondent_burden
- field.field.node.digital_form.field_va_form_number
- node.type.digital_form
module:
+ - datetime
- entity_reference_revisions
+ - field_group
- user
+third_party_settings:
+ field_group:
+ group_omb_info:
+ children:
+ - field_respondent_burden
+ - field_omb_number
+ - field_expiration_date
+ label: 'OMB info'
+ parent_name: ''
+ region: content
+ weight: 1
+ format_type: details
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ label_as_html: false
+ open: true
+ description: ''
id: node.digital_form.default
targetEntityType: node
bundle: digital_form
@@ -25,15 +48,33 @@ content:
view_mode: default
link: ''
third_party_settings: { }
- weight: 2
+ weight: 3
+ region: content
+ field_expiration_date:
+ type: datetime_default
+ label: inline
+ settings:
+ timezone_override: ''
+ format_type: short_date_no_time
+ third_party_settings: { }
+ weight: 7
region: content
field_omb_number:
type: string
- label: above
+ label: inline
settings:
link_to_entity: false
third_party_settings: { }
- weight: 1
+ weight: 6
+ region: content
+ field_respondent_burden:
+ type: number_integer
+ label: inline
+ settings:
+ thousand_separator: ''
+ prefix_suffix: true
+ third_party_settings: { }
+ weight: 5
region: content
field_va_form_number:
type: string
diff --git a/config/sync/core.entity_view_display.node.digital_form.external_content.yml b/config/sync/core.entity_view_display.node.digital_form.external_content.yml
index fd586c5932..268e0c7c14 100644
--- a/config/sync/core.entity_view_display.node.digital_form.external_content.yml
+++ b/config/sync/core.entity_view_display.node.digital_form.external_content.yml
@@ -6,9 +6,11 @@ dependencies:
- core.entity_view_mode.node.external_content
- field.field.node.digital_form.field_administration
- field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_expiration_date
- field.field.node.digital_form.field_last_saved_by_an_editor
- field.field.node.digital_form.field_meta_tags
- field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_respondent_burden
- field.field.node.digital_form.field_va_form_number
- node.type.digital_form
module:
@@ -52,8 +54,10 @@ content:
hidden:
field_administration: true
field_chapters: true
+ field_expiration_date: true
field_last_saved_by_an_editor: true
field_meta_tags: true
field_omb_number: true
+ field_respondent_burden: true
langcode: true
search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.node.digital_form.teaser.yml b/config/sync/core.entity_view_display.node.digital_form.teaser.yml
index 0788c646f4..d2dc0fb2d7 100644
--- a/config/sync/core.entity_view_display.node.digital_form.teaser.yml
+++ b/config/sync/core.entity_view_display.node.digital_form.teaser.yml
@@ -6,9 +6,11 @@ dependencies:
- core.entity_view_mode.node.teaser
- field.field.node.digital_form.field_administration
- field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_expiration_date
- field.field.node.digital_form.field_last_saved_by_an_editor
- field.field.node.digital_form.field_meta_tags
- field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_respondent_burden
- field.field.node.digital_form.field_va_form_number
- node.type.digital_form
module:
@@ -44,9 +46,11 @@ content:
hidden:
field_administration: true
field_chapters: true
+ field_expiration_date: true
field_last_saved_by_an_editor: true
field_meta_tags: true
field_omb_number: true
+ field_respondent_burden: true
field_va_form_number: true
langcode: true
search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.paragraph.digital_form_identification_info.default.yml b/config/sync/core.entity_view_display.paragraph.digital_form_identification_info.default.yml
new file mode 100644
index 0000000000..720d7cdef5
--- /dev/null
+++ b/config/sync/core.entity_view_display.paragraph.digital_form_identification_info.default.yml
@@ -0,0 +1,34 @@
+uuid: ee8a8314-d05e-41c9-a1d4-8f79e7f32a0c
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.digital_form_identification_info.field_include_veteran_s_service
+ - field.field.paragraph.digital_form_identification_info.field_title
+ - paragraphs.paragraphs_type.digital_form_identification_info
+id: paragraph.digital_form_identification_info.default
+targetEntityType: paragraph
+bundle: digital_form_identification_info
+mode: default
+content:
+ field_include_veteran_s_service:
+ type: boolean
+ label: above
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ breadcrumbs: true
+ search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.paragraph.digital_form_identification_info.user_guides.yml b/config/sync/core.entity_view_display.paragraph.digital_form_identification_info.user_guides.yml
new file mode 100644
index 0000000000..b7f6928d15
--- /dev/null
+++ b/config/sync/core.entity_view_display.paragraph.digital_form_identification_info.user_guides.yml
@@ -0,0 +1,26 @@
+uuid: b90e31e0-3a2b-41b1-84c8-77f99240339b
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.paragraph.user_guides
+ - field.field.paragraph.digital_form_identification_info.field_include_veteran_s_service
+ - field.field.paragraph.digital_form_identification_info.field_title
+ - paragraphs.paragraphs_type.digital_form_identification_info
+id: paragraph.digital_form_identification_info.user_guides
+targetEntityType: paragraph
+bundle: digital_form_identification_info
+mode: user_guides
+content:
+ field_title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ breadcrumbs: true
+ field_include_veteran_s_service: true
+ search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml
index 2ab04745a8..5ef650cf69 100644
--- a/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml
+++ b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml
@@ -30,4 +30,5 @@ content:
weight: 0
region: content
hidden:
+ breadcrumbs: true
search_api_excerpt: true
diff --git a/config/sync/field.field.node.digital_form.field_chapters.yml b/config/sync/field.field.node.digital_form.field_chapters.yml
index 337ee74e17..0742b2ede9 100644
--- a/config/sync/field.field.node.digital_form.field_chapters.yml
+++ b/config/sync/field.field.node.digital_form.field_chapters.yml
@@ -5,6 +5,7 @@ dependencies:
config:
- field.storage.node.field_chapters
- node.type.digital_form
+ - paragraphs.paragraphs_type.digital_form_identification_info
- paragraphs.paragraphs_type.digital_form_name_and_date_of_bi
module:
- entity_reference_revisions
@@ -27,46 +28,50 @@ settings:
handler_settings:
target_bundles:
digital_form_name_and_date_of_bi: digital_form_name_and_date_of_bi
+ digital_form_identification_info: digital_form_identification_info
negate: 0
target_bundles_drag_drop:
address:
- weight: -95
+ weight: -93
enabled: false
alert:
- weight: -94
+ weight: -92
enabled: false
alert_single:
- weight: -93
+ weight: -91
enabled: false
audience_topics:
- weight: -92
+ weight: -90
enabled: false
basic_accordion:
- weight: -91
+ weight: -89
enabled: false
button:
- weight: -90
+ weight: -88
enabled: false
centralized_content_descriptor:
- weight: -89
+ weight: -87
enabled: false
checklist:
- weight: -88
+ weight: -86
enabled: false
checklist_item:
- weight: -87
+ weight: -85
enabled: false
collapsible_panel:
- weight: -86
+ weight: -84
enabled: false
collapsible_panel_item:
- weight: -85
+ weight: -83
enabled: false
contact_information:
- weight: -84
+ weight: -82
enabled: false
+ digital_form_identification_info:
+ weight: -94
+ enabled: true
digital_form_name_and_date_of_bi:
- weight: -82
+ weight: -95
enabled: true
downloadable_file:
weight: -81
diff --git a/config/sync/field.field.node.digital_form.field_expiration_date.yml b/config/sync/field.field.node.digital_form.field_expiration_date.yml
new file mode 100644
index 0000000000..6fd3216212
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_expiration_date.yml
@@ -0,0 +1,25 @@
+uuid: fa5b4181-5374-42bc-bcba-6c126c46e4fc
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_expiration_date
+ - node.type.digital_form
+ module:
+ - datetime
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_expiration_date
+field_name: field_expiration_date
+entity_type: node
+bundle: digital_form
+label: 'Expiration date'
+description: 'The form expiration date.'
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: datetime
diff --git a/config/sync/field.field.node.digital_form.field_omb_number.yml b/config/sync/field.field.node.digital_form.field_omb_number.yml
index a15aa6e557..c9ab919e57 100644
--- a/config/sync/field.field.node.digital_form.field_omb_number.yml
+++ b/config/sync/field.field.node.digital_form.field_omb_number.yml
@@ -16,7 +16,7 @@ entity_type: node
bundle: digital_form
label: 'OMB Number'
description: 'Format: XXXX-XXXX'
-required: false
+required: true
translatable: false
default_value: { }
default_value_callback: ''
diff --git a/config/sync/field.field.node.digital_form.field_respondent_burden.yml b/config/sync/field.field.node.digital_form.field_respondent_burden.yml
new file mode 100644
index 0000000000..24c9e4632d
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_respondent_burden.yml
@@ -0,0 +1,28 @@
+uuid: a8a630a0-e849-49b6-8a8b-799a1e85012f
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_respondent_burden
+ - node.type.digital_form
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_respondent_burden
+field_name: field_respondent_burden
+entity_type: node
+bundle: digital_form
+label: 'Respondent burden'
+description: 'How many minutes the form is expected to take.'
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ min: 0
+ max: null
+ prefix: ''
+ suffix: ' minute| minutes'
+field_type: integer
diff --git a/config/sync/field.field.paragraph.digital_form_identification_info.field_include_veteran_s_service.yml b/config/sync/field.field.paragraph.digital_form_identification_info.field_include_veteran_s_service.yml
new file mode 100644
index 0000000000..f7b35e4458
--- /dev/null
+++ b/config/sync/field.field.paragraph.digital_form_identification_info.field_include_veteran_s_service.yml
@@ -0,0 +1,28 @@
+uuid: fbc94490-e23d-420b-8736-2b90f367ac0e
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_include_veteran_s_service
+ - paragraphs.paragraphs_type.digital_form_identification_info
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: paragraph.digital_form_identification_info.field_include_veteran_s_service
+field_name: field_include_veteran_s_service
+entity_type: paragraph
+bundle: digital_form_identification_info
+label: "Include Veteran's Service Number?"
+description: ''
+required: false
+translatable: false
+default_value:
+ -
+ value: 0
+default_value_callback: ''
+settings:
+ on_label: 'Yes'
+ off_label: 'No'
+field_type: boolean
diff --git a/config/sync/field.field.paragraph.digital_form_identification_info.field_title.yml b/config/sync/field.field.paragraph.digital_form_identification_info.field_title.yml
new file mode 100644
index 0000000000..6d616b8e7d
--- /dev/null
+++ b/config/sync/field.field.paragraph.digital_form_identification_info.field_title.yml
@@ -0,0 +1,26 @@
+uuid: 22f2c100-eac7-445d-8282-8653f7f7a115
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_title
+ - paragraphs.paragraphs_type.digital_form_identification_info
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: paragraph.digital_form_identification_info.field_title
+field_name: field_title
+entity_type: paragraph
+bundle: digital_form_identification_info
+label: Title
+description: ''
+required: true
+translatable: false
+default_value:
+ -
+ value: 'Identification Information'
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/sync/field.storage.node.field_expiration_date.yml b/config/sync/field.storage.node.field_expiration_date.yml
new file mode 100644
index 0000000000..2b41afb697
--- /dev/null
+++ b/config/sync/field.storage.node.field_expiration_date.yml
@@ -0,0 +1,20 @@
+uuid: aa2a5ea2-6260-4b42-921f-76ccd0f21220
+langcode: en
+status: true
+dependencies:
+ module:
+ - datetime
+ - node
+id: node.field_expiration_date
+field_name: field_expiration_date
+entity_type: node
+type: datetime
+settings:
+ datetime_type: date
+module: datetime
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_respondent_burden.yml b/config/sync/field.storage.node.field_respondent_burden.yml
new file mode 100644
index 0000000000..7f8f296225
--- /dev/null
+++ b/config/sync/field.storage.node.field_respondent_burden.yml
@@ -0,0 +1,20 @@
+uuid: 5412244a-523a-4734-80ed-53f8016430ff
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_respondent_burden
+field_name: field_respondent_burden
+entity_type: node
+type: integer
+settings:
+ unsigned: false
+ size: normal
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.paragraph.field_include_veteran_s_service.yml b/config/sync/field.storage.paragraph.field_include_veteran_s_service.yml
new file mode 100644
index 0000000000..ab7ca6f826
--- /dev/null
+++ b/config/sync/field.storage.paragraph.field_include_veteran_s_service.yml
@@ -0,0 +1,18 @@
+uuid: af411891-3d0b-45f3-aadf-bebec5209692
+langcode: en
+status: true
+dependencies:
+ module:
+ - paragraphs
+id: paragraph.field_include_veteran_s_service
+field_name: field_include_veteran_s_service
+entity_type: paragraph
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/paragraphs.paragraphs_type.digital_form_identification_info.yml b/config/sync/paragraphs.paragraphs_type.digital_form_identification_info.yml
new file mode 100644
index 0000000000..bc07a050f0
--- /dev/null
+++ b/config/sync/paragraphs.paragraphs_type.digital_form_identification_info.yml
@@ -0,0 +1,17 @@
+uuid: b59f56e8-4be0-48fa-8e19-79797f4aaef5
+langcode: en
+status: true
+dependencies:
+ content:
+ - 'file:file:8b5da18c-28a6-4cda-80d5-78e2f60b6cf7'
+ module:
+ - paragraphs_browser
+third_party_settings:
+ paragraphs_browser:
+ image_path: themes/custom/vagovclaro/images/screenshots/identification-info.png
+id: digital_form_identification_info
+label: 'Identification Information'
+icon_uuid: 8b5da18c-28a6-4cda-80d5-78e2f60b6cf7
+icon_default: 'data:image/png;base64,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'
+description: "Follow this pattern whenever you need to collect a person's Social Security or VA file number for an application."
+behavior_plugins: { }
diff --git a/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml b/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml
index 746c7fdd5a..95e95df58c 100644
--- a/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml
+++ b/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml
@@ -11,3 +11,4 @@ groups:
weight: '0'
map:
digital_form_name_and_date_of_bi: patterns
+ digital_form_identification_info: patterns
diff --git a/docroot/themes/custom/vagovclaro/images/screenshots/identification-info.png b/docroot/themes/custom/vagovclaro/images/screenshots/identification-info.png
new file mode 100644
index 0000000000..68a3cb916b
Binary files /dev/null and b/docroot/themes/custom/vagovclaro/images/screenshots/identification-info.png differ
diff --git a/scripts/content/digital-forms.php b/scripts/content/digital-forms.php
index 49d4fba3ce..a62aa21f6f 100644
--- a/scripts/content/digital-forms.php
+++ b/scripts/content/digital-forms.php
@@ -36,13 +36,19 @@ function create_digital_form(
array $values = [
'type' => 'digital_form',
'title' => 'Script Generated Digital Form',
+ 'field_expiration_date' => '2024-09-11',
'field_va_form_number' => '123456789',
'field_omb_number' => '1234-5678',
+ 'field_respondent_burden' => 30,
'moderation_state' => 'published',
],
array $steps = [
[],
- ['title' => 'Step without Date of Birth', 'include_dob' => FALSE],
+ [
+ 'type' => 'digital_form_identification_info',
+ 'title' => 'Generated Identification Information',
+ 'include_sn' => TRUE,
+ ],
],
) {
$digital_form = Node::create($values);
@@ -61,12 +67,23 @@ function create_digital_forms() {
$form_21_4140 = [
'type' => 'digital_form',
'title' => 'Employment Questionnaire',
+ 'field_expiration_date' => '2024-07-31',
'field_va_form_number' => '21-4140',
'field_omb_number' => '2900-0079',
+ 'field_respondent_burden' => 5,
'moderation_state' => 'published',
];
$form_21_4140_steps = [
- ['title' => "Veteran's personal information", 'include_dob' => TRUE],
+ [
+ 'type' => 'digital_form_name_and_date_of_bi',
+ 'title' => "Veteran's personal information",
+ 'include_dob' => TRUE,
+ ],
+ [
+ 'type' => 'digital_form_identification_info',
+ 'title' => 'Identification information',
+ 'include_sn' => TRUE,
+ ],
];
create_digital_form();
@@ -88,9 +105,18 @@ function create_digital_forms() {
function create_step(
array $values = [],
): Paragraph {
+ $step_type = $values['type'] ?? 'digital_form_name_and_date_of_bi';
+ $additional_fields = match ($step_type) {
+ 'digital_form_identification_info' => [
+ 'field_include_veteran_s_service' => $values['include_sn'] ?? FALSE,
+ ],
+ 'digital_form_name_and_date_of_bi' => [
+ 'field_include_date_of_birth' => $values['include_dob'] ?? TRUE,
+ ],
+ default => [],
+ };
return Paragraph::create([
- 'type' => 'digital_form_name_and_date_of_bi',
+ 'type' => $step_type,
'field_title' => $values['title'] ?? 'Script Generated Step',
- 'field_include_date_of_birth' => $values['include_dob'] ?? TRUE,
- ]);
+ ] + $additional_fields);
}
diff --git a/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php b/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php
index c4c3b4f7c5..de5e76b702 100644
--- a/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php
+++ b/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php
@@ -18,6 +18,8 @@ class DigitalFormTest extends VaGovExistingSiteBase {
*/
public function testBundleClass() {
$digital_form_attrs = [
+ 'field_expiration_date' => '2025-08-28',
+ 'field_respondent_burden' => 5,
'field_va_form_number' => '12345',
'field_omb_number' => '1234-5678',
'title' => 'Test Digital Form',
@@ -31,10 +33,18 @@ public function testBundleClass() {
$node->get('field_va_form_number')->getString(),
$digital_form_attrs['field_va_form_number']
);
+ $this->assertEquals(
+ $node->get('field_expiration_date')->getString(),
+ $digital_form_attrs['field_expiration_date']
+ );
$this->assertEquals(
$node->get('field_omb_number')->getString(),
$digital_form_attrs['field_omb_number']
);
+ $this->assertEquals(
+ $node->get('field_respondent_burden')->getString(),
+ $digital_form_attrs['field_respondent_burden']
+ );
}
}