diff --git a/config/default/core.entity_form_display.node.agency_component.default.yml b/config/default/core.entity_form_display.node.agency_component.default.yml index c54d45363..e5a70436b 100644 --- a/config/default/core.entity_form_display.node.agency_component.default.yml +++ b/config/default/core.entity_form_display.node.agency_component.default.yml @@ -29,6 +29,7 @@ dependencies: - field.field.node.agency_component.field_rep_start - field.field.node.agency_component.field_request_data_year - field.field.node.agency_component.field_request_submission_form + - field.field.node.agency_component.field_require_manual_processing - field.field.node.agency_component.field_service_centers - field.field.node.agency_component.field_simple_average_days - field.field.node.agency_component.field_simple_highest_days @@ -139,6 +140,7 @@ third_party_settings: required_fields: true group_processing_data: children: + - field_require_manual_processing - field_request_data_year - field_complex_average_days - field_complex_highest_days @@ -155,13 +157,14 @@ third_party_settings: label: 'Processing Data' region: content parent_name: '' - weight: 23 + weight: 24 format_type: details format_settings: classes: '' + show_empty_fields: false id: '' open: true - description: 'This data will be automatically populated from the annual report for this agency component. The data will be fetched from Section VII.A. - Processed Requests.' + description: 'Unless the checkbox below is checked, this data will be automatically populated from the annual report for this agency component. The data will be fetched from Section VII.A. - Processed Requests.' required_fields: true group_annual_foia_report_dates: children: @@ -170,7 +173,7 @@ third_party_settings: label: 'Annual FOIA Report Start/Expiration Dates' region: content parent_name: '' - weight: 24 + weight: 25 format_type: details format_settings: classes: '' @@ -180,7 +183,6 @@ third_party_settings: group_interoperability: children: - field_interop_planned_method - - field_interop_status - field_interop_exception label: 'FOIA Portal Interoperability' region: content @@ -242,7 +244,7 @@ content: third_party_settings: { } field_complex_average_days: type: string_textfield - weight: 28 + weight: 25 region: content settings: size: 60 @@ -250,7 +252,7 @@ content: third_party_settings: { } field_complex_highest_days: type: string_textfield - weight: 29 + weight: 26 region: content settings: size: 60 @@ -258,7 +260,7 @@ content: third_party_settings: { } field_complex_lowest_days: type: string_textfield - weight: 30 + weight: 27 region: content settings: size: 60 @@ -266,7 +268,7 @@ content: third_party_settings: { } field_complex_median_days: type: string_textfield - weight: 31 + weight: 28 region: content settings: size: 60 @@ -282,7 +284,7 @@ content: third_party_settings: { } field_expedited_average_days: type: string_textfield - weight: 32 + weight: 29 region: content settings: size: 60 @@ -290,7 +292,7 @@ content: third_party_settings: { } field_expedited_highest_days: type: string_textfield - weight: 33 + weight: 30 region: content settings: size: 60 @@ -298,7 +300,7 @@ content: third_party_settings: { } field_expedited_lowest_days: type: string_textfield - weight: 34 + weight: 31 region: content settings: size: 60 @@ -306,7 +308,7 @@ content: third_party_settings: { } field_expedited_median_days: type: string_textfield - weight: 35 + weight: 32 region: content settings: size: 60 @@ -328,6 +330,7 @@ content: collapsible: false collapsed: false revision: false + removed_reference: optional third_party_settings: { } field_interop_exception: type: options_select @@ -364,6 +367,7 @@ content: collapsible: false collapsed: false revision: false + removed_reference: optional third_party_settings: { } field_portal_submission_format: type: options_select @@ -387,6 +391,7 @@ content: collapsible: false collapsed: false revision: false + removed_reference: optional third_party_settings: { } field_reading_rooms: type: link_default @@ -412,6 +417,7 @@ content: collapsible: false collapsed: false revision: false + removed_reference: optional third_party_settings: { } field_rep_exp: type: datetime_default @@ -427,7 +433,7 @@ content: third_party_settings: { } field_request_data_year: type: string_textfield - weight: 27 + weight: 24 region: content settings: size: 60 @@ -441,6 +447,13 @@ content: default_data: true webforms: { } third_party_settings: { } + field_require_manual_processing: + type: boolean_checkbox + weight: 23 + region: content + settings: + display_label: true + third_party_settings: { } field_service_centers: type: inline_entity_form_complex weight: 10 @@ -457,10 +470,11 @@ content: collapsible: false collapsed: false revision: false + removed_reference: optional third_party_settings: { } field_simple_average_days: type: string_textfield - weight: 36 + weight: 33 region: content settings: size: 60 @@ -468,7 +482,7 @@ content: third_party_settings: { } field_simple_highest_days: type: string_textfield - weight: 37 + weight: 34 region: content settings: size: 60 @@ -476,7 +490,7 @@ content: third_party_settings: { } field_simple_lowest_days: type: string_textfield - weight: 38 + weight: 35 region: content settings: size: 60 @@ -484,7 +498,7 @@ content: third_party_settings: { } field_simple_median_days: type: string_textfield - weight: 39 + weight: 36 region: content settings: size: 60 diff --git a/config/default/core.entity_view_display.node.agency_component.default.yml b/config/default/core.entity_view_display.node.agency_component.default.yml index 27dd6b411..1d296aecd 100644 --- a/config/default/core.entity_view_display.node.agency_component.default.yml +++ b/config/default/core.entity_view_display.node.agency_component.default.yml @@ -29,6 +29,7 @@ dependencies: - field.field.node.agency_component.field_rep_start - field.field.node.agency_component.field_request_data_year - field.field.node.agency_component.field_request_submission_form + - field.field.node.agency_component.field_require_manual_processing - field.field.node.agency_component.field_service_centers - field.field.node.agency_component.field_simple_average_days - field.field.node.agency_component.field_simple_highest_days @@ -349,6 +350,7 @@ content: hidden: field_interop_exception: true field_interop_planned_method: true + field_require_manual_processing: true field_submission_api: true field_submission_api_secret: true field_submission_email: true diff --git a/config/default/core.entity_view_display.node.agency_component.teaser.yml b/config/default/core.entity_view_display.node.agency_component.teaser.yml index 459c1f246..5fcdb10cc 100644 --- a/config/default/core.entity_view_display.node.agency_component.teaser.yml +++ b/config/default/core.entity_view_display.node.agency_component.teaser.yml @@ -30,6 +30,7 @@ dependencies: - field.field.node.agency_component.field_rep_start - field.field.node.agency_component.field_request_data_year - field.field.node.agency_component.field_request_submission_form + - field.field.node.agency_component.field_require_manual_processing - field.field.node.agency_component.field_service_centers - field.field.node.agency_component.field_simple_average_days - field.field.node.agency_component.field_simple_highest_days @@ -44,27 +45,26 @@ dependencies: - field.field.node.agency_component.field_website - node.type.agency_component module: - - text + - panelizer - user +third_party_settings: + panelizer: + enable: false + custom: false + allow: false + default: default id: node.agency_component.teaser targetEntityType: node bundle: agency_component mode: teaser content: - body: - type: text_summary_or_trimmed - label: hidden - settings: - trim_length: 600 - third_party_settings: { } - weight: 101 - region: content links: settings: { } third_party_settings: { } - weight: 100 + weight: 0 region: content hidden: + body: true field_agency: true field_agency_comp_abbreviation: true field_agency_comp_telephone: true @@ -91,6 +91,7 @@ hidden: field_rep_start: true field_request_data_year: true field_request_submission_form: true + field_require_manual_processing: true field_service_centers: true field_simple_average_days: true field_simple_highest_days: true diff --git a/config/default/field.field.node.agency_component.field_complex_average_days.yml b/config/default/field.field.node.agency_component.field_complex_average_days.yml index 4bd6bc70b..c2efa515a 100644 --- a/config/default/field.field.node.agency_component.field_complex_average_days.yml +++ b/config/default/field.field.node.agency_component.field_complex_average_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_complex_average_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_complex_average_days field_name: field_complex_average_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_complex_highest_days.yml b/config/default/field.field.node.agency_component.field_complex_highest_days.yml index 506196393..634a8d19e 100644 --- a/config/default/field.field.node.agency_component.field_complex_highest_days.yml +++ b/config/default/field.field.node.agency_component.field_complex_highest_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_complex_highest_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_complex_highest_days field_name: field_complex_highest_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_complex_lowest_days.yml b/config/default/field.field.node.agency_component.field_complex_lowest_days.yml index d07ecc169..34fa61cd0 100644 --- a/config/default/field.field.node.agency_component.field_complex_lowest_days.yml +++ b/config/default/field.field.node.agency_component.field_complex_lowest_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_complex_lowest_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_complex_lowest_days field_name: field_complex_lowest_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_complex_median_days.yml b/config/default/field.field.node.agency_component.field_complex_median_days.yml index 17bcb2821..d4f6d1fee 100644 --- a/config/default/field.field.node.agency_component.field_complex_median_days.yml +++ b/config/default/field.field.node.agency_component.field_complex_median_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_complex_median_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_complex_median_days field_name: field_complex_median_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_expedited_average_days.yml b/config/default/field.field.node.agency_component.field_expedited_average_days.yml index f39170b2d..38d360abf 100644 --- a/config/default/field.field.node.agency_component.field_expedited_average_days.yml +++ b/config/default/field.field.node.agency_component.field_expedited_average_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_expedited_average_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_expedited_average_days field_name: field_expedited_average_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_expedited_highest_days.yml b/config/default/field.field.node.agency_component.field_expedited_highest_days.yml index da6df8d3d..0742fcee9 100644 --- a/config/default/field.field.node.agency_component.field_expedited_highest_days.yml +++ b/config/default/field.field.node.agency_component.field_expedited_highest_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_expedited_highest_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_expedited_highest_days field_name: field_expedited_highest_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_expedited_lowest_days.yml b/config/default/field.field.node.agency_component.field_expedited_lowest_days.yml index 9ba36f528..fe78ea250 100644 --- a/config/default/field.field.node.agency_component.field_expedited_lowest_days.yml +++ b/config/default/field.field.node.agency_component.field_expedited_lowest_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_expedited_lowest_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_expedited_lowest_days field_name: field_expedited_lowest_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_expedited_median_days.yml b/config/default/field.field.node.agency_component.field_expedited_median_days.yml index 873d63bb9..fd132068e 100644 --- a/config/default/field.field.node.agency_component.field_expedited_median_days.yml +++ b/config/default/field.field.node.agency_component.field_expedited_median_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_expedited_median_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_expedited_median_days field_name: field_expedited_median_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_request_data_year.yml b/config/default/field.field.node.agency_component.field_request_data_year.yml index c83d664d7..65029705c 100644 --- a/config/default/field.field.node.agency_component.field_request_data_year.yml +++ b/config/default/field.field.node.agency_component.field_request_data_year.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_request_data_year - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_request_data_year field_name: field_request_data_year entity_type: node diff --git a/config/default/field.field.node.agency_component.field_require_manual_processing.yml b/config/default/field.field.node.agency_component.field_require_manual_processing.yml new file mode 100644 index 000000000..0e0a0ff31 --- /dev/null +++ b/config/default/field.field.node.agency_component.field_require_manual_processing.yml @@ -0,0 +1,30 @@ +uuid: 16fda936-814f-48a8-8c51-2cf970544916 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_require_manual_processing + - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' +id: node.agency_component.field_require_manual_processing +field_name: field_require_manual_processing +entity_type: node +bundle: agency_component +label: 'Require manual entry of processing times' +description: '' +required: false +translatable: false +default_value: + - + value: 0 +default_value_callback: '' +settings: + on_label: 'On' + off_label: 'Off' +field_type: boolean diff --git a/config/default/field.field.node.agency_component.field_simple_average_days.yml b/config/default/field.field.node.agency_component.field_simple_average_days.yml index 5fdd03da3..53a74856b 100644 --- a/config/default/field.field.node.agency_component.field_simple_average_days.yml +++ b/config/default/field.field.node.agency_component.field_simple_average_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_simple_average_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_simple_average_days field_name: field_simple_average_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_simple_highest_days.yml b/config/default/field.field.node.agency_component.field_simple_highest_days.yml index d9fd40dde..3d0d2deaf 100644 --- a/config/default/field.field.node.agency_component.field_simple_highest_days.yml +++ b/config/default/field.field.node.agency_component.field_simple_highest_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_simple_highest_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_simple_highest_days field_name: field_simple_highest_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_simple_lowest_days.yml b/config/default/field.field.node.agency_component.field_simple_lowest_days.yml index f5700dd1d..beb3b1812 100644 --- a/config/default/field.field.node.agency_component.field_simple_lowest_days.yml +++ b/config/default/field.field.node.agency_component.field_simple_lowest_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_simple_lowest_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_simple_lowest_days field_name: field_simple_lowest_days entity_type: node diff --git a/config/default/field.field.node.agency_component.field_simple_median_days.yml b/config/default/field.field.node.agency_component.field_simple_median_days.yml index b732cb71d..dbecaeda2 100644 --- a/config/default/field.field.node.agency_component.field_simple_median_days.yml +++ b/config/default/field.field.node.agency_component.field_simple_median_days.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.node.field_simple_median_days - node.type.agency_component + module: + - foia_autocalc +third_party_settings: + foia_autocalc: + autocalc_settings: + description: '' + autocalc_config: '' id: node.agency_component.field_simple_median_days field_name: field_simple_median_days entity_type: node diff --git a/config/default/field.storage.node.field_require_manual_processing.yml b/config/default/field.storage.node.field_require_manual_processing.yml new file mode 100644 index 000000000..99eba81c2 --- /dev/null +++ b/config/default/field.storage.node.field_require_manual_processing.yml @@ -0,0 +1,22 @@ +uuid: e9d08c01-b33b-4e66-8887-5eb1ccb3ebf7 +langcode: en +status: true +dependencies: + module: + - field_permissions + - node +third_party_settings: + field_permissions: + permission_type: custom +id: node.field_require_manual_processing +field_name: field_require_manual_processing +entity_type: node +type: boolean +settings: { } +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/default/user.role.agency_administrator.yml b/config/default/user.role.agency_administrator.yml index 66d298189..06f2878b5 100644 --- a/config/default/user.role.agency_administrator.yml +++ b/config/default/user.role.agency_administrator.yml @@ -87,13 +87,27 @@ permissions: - 'edit any quarterly_foia_report_data content' - 'edit any webform' - 'edit field_agency_component_inactive' + - 'edit field_complex_average_days' + - 'edit field_complex_highest_days' + - 'edit field_complex_lowest_days' + - 'edit field_complex_median_days' + - 'edit field_expedited_average_days' + - 'edit field_expedited_highest_days' + - 'edit field_expedited_lowest_days' + - 'edit field_expedited_median_days' - 'edit field_interop_exception' - 'edit field_interop_planned_method' - 'edit field_interop_status' - 'edit field_is_centralized' - 'edit field_rep_exp' - 'edit field_rep_start' + - 'edit field_request_data_year' - 'edit field_request_submission_form' + - 'edit field_require_manual_processing' + - 'edit field_simple_average_days' + - 'edit field_simple_highest_days' + - 'edit field_simple_lowest_days' + - 'edit field_simple_median_days' - 'edit field_submission_api' - 'edit field_submission_api_secret' - 'edit field_submission_email' @@ -194,6 +208,7 @@ permissions: - 'view field_rep_start' - 'view field_request_data_year' - 'view field_request_submission_form' + - 'view field_require_manual_processing' - 'view field_simple_average_days' - 'view field_simple_highest_days' - 'view field_simple_lowest_days' diff --git a/docroot/modules/custom/foia_agency_component/foia_agency_component.module b/docroot/modules/custom/foia_agency_component/foia_agency_component.module index 08bcfb8b8..e8b839a94 100644 --- a/docroot/modules/custom/foia_agency_component/foia_agency_component.module +++ b/docroot/modules/custom/foia_agency_component/foia_agency_component.module @@ -22,31 +22,33 @@ function foia_agency_component_entity_bundle_field_info_alter(array &$fields, En * Implements hook_form_form_alter(). */ function foia_agency_component_form_node_agency_component_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) { - - // Processing data gets updated automatically on existing agency components - // from the matching entry in the Annual Report. - // See foia_annual_data_report.module foia_annual_data_report_node_presave(). - // These are the fields to disable. - $fields_disable = [ - 'field_request_data_year', - 'field_complex_average_days', - 'field_complex_average_days', - 'field_complex_highest_days', - 'field_complex_lowest_days', - 'field_complex_median_days', - 'field_expedited_average_days', - 'field_expedited_highest_days', - 'field_expedited_lowest_days', - 'field_expedited_median_days', - 'field_simple_average_days', - 'field_simple_highest_days', - 'field_simple_lowest_days', - 'field_simple_median_days', - ]; - - // Loop through the fields and disable each one. - foreach ($fields_disable as $field) { - $form[$field]['#disabled'] = TRUE; + $checkBox = $form_state->getFormObject()->getEntity()->get('field_require_manual_processing')->getString(); + if (!$checkBox) { + // Processing data gets updated automatically on existing agency components + // from the matching entry in the Annual Report. + // See foia_annual_data_report.module + // foia_annual_data_report_node_presave(). + // These are the fields to disable. + $fields_disable = [ + 'field_request_data_year', + 'field_complex_average_days', + 'field_complex_average_days', + 'field_complex_highest_days', + 'field_complex_lowest_days', + 'field_complex_median_days', + 'field_expedited_average_days', + 'field_expedited_highest_days', + 'field_expedited_lowest_days', + 'field_expedited_median_days', + 'field_simple_average_days', + 'field_simple_highest_days', + 'field_simple_lowest_days', + 'field_simple_median_days', + ]; + + // Loop through the fields and disable each one. + foreach ($fields_disable as $field) { + $form[$field]['#disabled'] = TRUE; + } } - } diff --git a/docroot/modules/custom/foia_annual_data_report/foia_annual_data_report.module b/docroot/modules/custom/foia_annual_data_report/foia_annual_data_report.module index 750154ce2..6cb4fe025 100644 --- a/docroot/modules/custom/foia_annual_data_report/foia_annual_data_report.module +++ b/docroot/modules/custom/foia_annual_data_report/foia_annual_data_report.module @@ -602,17 +602,21 @@ function foia_annual_data_report_node_presave($entity) { // Node object - Agency Component. $ac_node = Node::load($ac_nid); + $requiredManualProcessing = $ac_node->get('field_require_manual_processing')->getString(); + // The following code should only execute if that "Require manual entry + // of processing times" checkbox is not checked. + if (!$requiredManualProcessing) { + // Loop over our field map and update ac node from the annual report. + foreach ($field_mapping as $field_report => $field_ac_node) { + $val = $agency->get($field_report)->getString(); + $ac_node->set($field_ac_node, $val); + } + // Update the report year. + $ac_node->set('field_request_data_year', $report_year); - // Loop over our field map and update ac node from the annual report. - foreach ($field_mapping as $field_report => $field_ac_node) { - $val = $agency->get($field_report)->getValue()[0]['value']; - $ac_node->set($field_ac_node, $val); + // Save the node. + $ac_node->save(); } - // Update the report year. - $ac_node->set('field_request_data_year', $report_year); - - // Save the node. - $ac_node->save(); } } } diff --git a/tests/behat/features/AnnualFOIAReportData.feature b/tests/behat/features/AnnualFOIAReportData.feature index 667642ce8..3d9c8cb49 100644 --- a/tests/behat/features/AnnualFOIAReportData.feature +++ b/tests/behat/features/AnnualFOIAReportData.feature @@ -107,3 +107,401 @@ Feature: Annual FOIA Report Data Feature When I press the 'Save and continue' button Then I should see "Components field is required" + @api @javascript + Scenario: All of the necessary annual report fields are available. + Given I am logged in as a user with the "Administrator" role + And I am at "node/add/annual_foia_report_data" + And I select "Federal Testing Agency" from "Agency" + And I wait 5 seconds + And I check the box "ABCDEF" + And for 'FOIA Annual Report Year' I enter '2019' + And I press the 'Save and continue' button + And I wait 5 seconds + And I ignore the admin menu + # Section:'IV. Exemption 3 Statutes'. + And I click the section 'IV. Exemption 3 Statutes' + And I click 'Statute' in the 'IV. Exemption 3 Statutes' section + And for 'Statute' in the 'IV. Exemption 3 Statutes' section I enter 'N/A' + And for 'Type of Information Withheld' in the 'IV. Exemption 3 Statutes' section I enter 'N/A' + And for 'Case Citation' in the 'IV. Exemption 3 Statutes' section I enter 'N/A' + And I click 'Agency/Component' in the 'IV. Exemption 3 Statutes' section + And I select "ABCDEF" from "Agency/Component" in the 'IV. Exemption 3 Statutes' section + And for 'Number of Times Relied Upon by Agency/Component' in the 'IV. Exemption 3 Statutes' section I enter '0' + # Section:'V.A. FOIA REQUESTS -- RECEIVED, PROCESSED AND PENDING FOIA REQUESTS'. + And I click the section 'V.A. FOIA REQUESTS -- RECEIVED, PROCESSED AND PENDING FOIA REQUESTS' + And I select "ABCDEF" from "Agency/Component" in the 'V.A. FOIA REQUESTS -- RECEIVED, PROCESSED AND PENDING FOIA REQUESTS' section + And for 'Number of Requests Pending as of Start of Fiscal Year' I enter '1' + And for 'Number of Requests Received in Fiscal Year' I enter '21' + And for 'Number of Requests Processed in Fiscal Year' I enter '16' + # Section:'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS'. + And I click the section 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' + And I click 'Agency/Component' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section + And I select "ABCDEF" from "Agency/Component" in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section + And for 'Number of Full Grants' I enter '3' + And for 'Number of Partial Grants/Partial Denials' I enter '1' + And for 'Number of Full Denials Based on Exemptions' I enter '0' + And I click 'Number of Full Denials Based on Reasons Other than Exemptions' + And for 'No Records' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '4' + And for 'All Records Referred to Another Component or Agency' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '0' + And for 'Request Withdrawn' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '2' + And for 'Fee-Related Reason' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '0' + And for 'Records Not Reasonably Described' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '0' + And for 'Improper FOIA Request for Other Reason' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '6' + And for 'Not Agency Record' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '0' + And for 'Duplicate Request' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '0' + And for 'Other*' in the 'V.B.(1). DISPOSITION OF FOIA REQUESTS -- ALL PROCESSED REQUESTS' section I enter '0' + # Section: 'V.B.(2). DISPOSITION OF FOIA REQUESTS -- "OTHER" REASONS FOR "FULL DENIALS BASED ON REASONS OTHER THAN EXEMPTIONS"' + And I click the section 'V.B.(2). DISPOSITION OF FOIA REQUESTS -- "OTHER" REASONS FOR "FULL DENIALS BASED ON REASONS OTHER THAN EXEMPTIONS"' + And I click 'Agency/Component' in the 'V.B.(2). DISPOSITION OF FOIA REQUESTS -- "OTHER" REASONS FOR "FULL DENIALS BASED ON REASONS OTHER THAN EXEMPTIONS"' section + And I select "ABCDEF" from "Agency/Component" in the 'V.B.(2). DISPOSITION OF FOIA REQUESTS -- "OTHER" REASONS FOR "FULL DENIALS BASED ON REASONS OTHER THAN EXEMPTIONS"' section + And I click '"Other" Reasons for Denials' + And for 'Description of "Other" Reasons for Denials from Chart B(1)' in the 'V.B.(2). DISPOSITION OF FOIA REQUESTS -- "OTHER" REASONS FOR "FULL DENIALS BASED ON REASONS OTHER THAN EXEMPTIONS"' section and the '"Other" Reasons for Denials' sub-section I enter 'N/A' + And for 'Number of Times "Other" Reason Was Relied Upon' in the 'V.B.(2). DISPOSITION OF FOIA REQUESTS -- "OTHER" REASONS FOR "FULL DENIALS BASED ON REASONS OTHER THAN EXEMPTIONS"' section and the '"Other" Reasons for Denials' sub-section I enter '0' + # Section: 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' + And I click the section 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' + And I select "ABCDEF" from "Agency/Component" in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section + And for 'Ex. 1' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 2' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 3' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 4' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 5' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '2' + And for 'Ex. 6' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(A)' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(B)' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(C)' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(D)' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(E)' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(F)' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 8' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 9' in the 'V.B.(3). DISPOSITION OF FOIA REQUESTS -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + # Section: 'VI.A. ADMINISTRATIVE APPEALS OF INITIAL DETERMINATIONS OF FOIA REQUESTS - RECEIVED, PROCESSED, AND PENDING ADMINISTRATIVE APPEAL' + And I click the section 'VI.A. ADMINISTRATIVE APPEALS OF INITIAL DETERMINATIONS OF FOIA REQUESTS - RECEIVED, PROCESSED, AND PENDING ADMINISTRATIVE APPEAL' + And I select "ABCDEF" from "Agency/Component" in the 'VI.A. ADMINISTRATIVE APPEALS OF INITIAL DETERMINATIONS OF FOIA REQUESTS - RECEIVED, PROCESSED, AND PENDING ADMINISTRATIVE APPEAL' section + And for 'Number of Appeals Pending as of Start of Fiscal Year' I enter '0' + And for 'Number of Appeals Received in Fiscal Year' I enter '0' + And for 'Number of Appeals Processed in Fiscal Year' I enter '0' + # Section: 'VI.B. DISPOSITION OF ADMINISTRATIVE APPEALS -- ALL PROCESSED APPEALS' + And I click the section 'VI.B. DISPOSITION OF ADMINISTRATIVE APPEALS -- ALL PROCESSED APPEALS' + And I select "ABCDEF" from "Agency/Component" in the 'VI.B. DISPOSITION OF ADMINISTRATIVE APPEALS -- ALL PROCESSED APPEALS' section + And for 'Number Affirmed on Appeal' I enter '0' + And for 'Number Partially Affirmed & Partially Reversed/Remanded on Appeal' I enter '0' + And for 'Number Completely Reversed/Remanded on Appeal' I enter '0' + And for 'Number of Appeals Closed for Other Reasons' I enter '0' + # Section: 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' + And I click the section 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' + And I select "ABCDEF" from "Agency/Component" in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section + And for 'Ex. 1' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 2' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 3' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 4' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 5' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 6' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(A)' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(B)' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(C)' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(D)' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(E)' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 7(F)' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 8' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + And for 'Ex. 9' in the 'VI.C.(1). REASONS FOR DENIAL ON APPEAL -- NUMBER OF TIMES EXEMPTIONS APPLIED' section I enter '0' + # Section: 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' + And I click the section 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' + And I select "ABCDEF" from "Agency/Component" in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section + And for 'No Records' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Records Referred at Initial Request Level' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Request Withdrawn' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Fee-Related Reason' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Records Not Reasonably Described' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Improper FOIA Request for Other Reason' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Not Agency Record' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Duplicate Request or Appeal' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Request in Litigation' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Appeal Based Solely on Denial of Request for Expedited Processing' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + And for 'Other*' in the 'VI.C.(2). REASONS FOR DENIAL ON APPEAL -- REASONS OTHER THAN EXEMPTIONS' section I enter '0' + # Section: 'VI.C.(3). REASONS FOR DENIAL ON APPEAL -- "OTHER" REASONS' + And I click the section 'VI.C.(3). REASONS FOR DENIAL ON APPEAL -- "OTHER" REASONS' + And I click 'Agency/Component' in the 'VI.C.(3). REASONS FOR DENIAL ON APPEAL -- "OTHER" REASONS' section + And I select "ABCDEF" from "Agency/Component" in the 'VI.C.(3). REASONS FOR DENIAL ON APPEAL -- "OTHER" REASONS' section + And I click '"Other" Reasons Information' + And for 'Description of "Other" Reasons for Denials from Chart B(1)' in the 'VI.C.(3). REASONS FOR DENIAL ON APPEAL -- "OTHER" REASONS' section and the '"Other" Reasons Information' sub-section I enter 'N/A' + And for 'Number of Times "Other" Reason Was Relied Upon' in the 'VI.C.(3). REASONS FOR DENIAL ON APPEAL -- "OTHER" REASONS' section and the '"Other" Reasons Information' sub-section I enter '0' + # Section: 'VI.C.(4). RESPONSE TIME FOR ADMINISTRATIVE APPEALS' + And I click the section 'VI.C.(4). RESPONSE TIME FOR ADMINISTRATIVE APPEALS' + And I select "ABCDEF" from "Agency/Component" in the 'VI.C.(4). RESPONSE TIME FOR ADMINISTRATIVE APPEALS' section + And for 'Median Number of Days' in the 'VI.C.(4). RESPONSE TIME FOR ADMINISTRATIVE APPEALS' section I enter 'N/A' + And for 'Average Number of Days' in the 'VI.C.(4). RESPONSE TIME FOR ADMINISTRATIVE APPEALS' section I enter 'N/A' + And for 'Lowest Number of Days' in the 'VI.C.(4). RESPONSE TIME FOR ADMINISTRATIVE APPEALS' section I enter 'N/A' + And for 'Highest Number of Days' in the 'VI.C.(4). RESPONSE TIME FOR ADMINISTRATIVE APPEALS' section I enter 'N/A' + # Section: 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' + And I click the section 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' + And I select "ABCDEF" from "Agency/Component" in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And I click 'Oldest' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the 'Oldest' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the 'Oldest' sub-section I enter '0' + And I click '2nd' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '2nd' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '2nd' sub-section I enter '0' + And I click '3rd' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '3rd' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '3rd' sub-section I enter '0' + And I click '4th' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '4th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '4th' sub-section I enter '0' + And I click '5th' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '5th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '5th' sub-section I enter '0' + And I click '6th' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '6th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '6th' sub-section I enter '0' + And I click '7th' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '7th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '7th' sub-section I enter '0' + And I click '8th' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '8th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '8th' sub-section I enter '0' + And I click '9th' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '9th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '9th' sub-section I enter '0' + And I click '10th' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section + And for 'Date' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '10th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VI.C.(5). TEN OLDEST PENDING ADMINISTRATIVE APPEALS' section and the '10th' sub-section I enter '0' + # Section: 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' + And I click the section 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' + And I click 'Simple' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And I select "ABCDEF" from "Agency/Component" in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And for 'Median Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '106' + And for 'Average Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '103.4' + And for 'Lowest Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '43' + And for 'Highest Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '200' + And I click 'Complex' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And for 'Median Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Complex' sub-section I enter '99' + And for 'Average Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Complex' sub-section I enter '122.2' + And for 'Lowest Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Complex' sub-section I enter '47' + And for 'Highest Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Complex' sub-section I enter '233' + And I click 'Expedited Processing' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And for 'Median Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Expedited Processing' sub-section I enter 'N/A' + And for 'Average Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Expedited Processing' sub-section I enter 'N/A' + And for 'Lowest Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Expedited Processing' sub-section I enter 'N/A' + And for 'Highest Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Expedited Processing' sub-section I enter 'N/A' + # Section: 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' + And I click the section 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' + And I click 'Simple' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section + And I select "ABCDEF" from "Agency/Component" in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section + And for 'Median Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Simple' sub-section I enter 'N/A' + And for 'Average Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Simple' sub-section I enter 'N/A' + And for 'Lowest Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Simple' sub-section I enter 'N/A' + And for 'Highest Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Simple' sub-section I enter 'N/A' + And I click 'Complex' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section + And for 'Median Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Complex' sub-section I enter '109' + And for 'Average Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Complex' sub-section I enter '109' + And for 'Lowest Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Complex' sub-section I enter '68' + And for 'Highest Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Complex' sub-section I enter '149' + And I click 'Expedited Processing' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section + And for 'Median Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Expedited Processing' sub-section I enter 'N/A' + And for 'Average Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Expedited Processing' sub-section I enter 'N/A' + And for 'Lowest Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Expedited Processing' sub-section I enter 'N/A' + And for 'Highest Number of Days' in the 'VII.B. PROCESSED REQUESTS -- RESPONSE TIME FOR PERFECTED REQUESTS IN WHICH INFORMATION WAS GRANTED' section and the 'Expedited Processing' sub-section I enter 'N/A' + # Section: 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' + And I click the section 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' + And I select "ABCDEF" from "Agency/Component" in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section + And for '<1-20 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '21-40 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '41-60 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '2' + And for '61-80 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '81-100 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '101-120 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '2' + And for '121-140 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '141-160 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '161-180 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '181-200 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '1' + And for '201-300 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '301-400 Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '400+ Days' in the 'VII.C.(1). PROCESSED SIMPLE REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + # Section: 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' + And I click the section 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' + And I select "ABCDEF" from "Agency/Component" in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section + And for '<1-20 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '21-40 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '41-60 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '1' + And for '61-80 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '81-100 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '2' + And for '101-120 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '121-140 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '1' + And for '141-160 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '161-180 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '181-200 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '201-300 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '1' + And for '301-400 Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '400+ Days' in the 'VII.C.(2). PROCESSED COMPLEX REQUESTS -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + # Section: 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' + And I click the section 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' + And I select "ABCDEF" from "Agency/Component" in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section + And for '<1-20 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '21-40 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '41-60 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '61-80 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '81-100 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '101-120 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '141-160 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '161-180 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '181-200 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '201-300 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '301-400 Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + And for '400+ Days' in the 'VII.C.(3). PROCESSED REQUESTS GRANTED EXPEDITED PROCESSING -- RESPONSE TIME IN DAY INCREMENTS' section I enter '0' + # Section: 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' + And I click the section 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' + And I select "ABCDEF" from "Agency/Component" in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section + And I click 'Simple' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section + And for 'Number Pending' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '1' + And for 'Median Number of Days' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '58' + And for 'Average Number of Days' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '58' + And I click 'Complex' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section + And for 'Number Pending' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Complex' sub-section I enter '5' + And for 'Median Number of Days' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Complex' sub-section I enter '71' + And for 'Average Number of Days' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Complex' sub-section I enter '79.4' + And I click 'Expedited Processing' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section + And for 'Number Pending' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Expedited Processing' sub-section I enter '0' + And for 'Median Number of Days' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Expedited Processing' sub-section I enter '0' + And for 'Average Number of Days' in the 'VII.D. PENDING REQUESTS -- ALL PENDING PERFECTED REQUESTS' section and the 'Expedited Processing' sub-section I enter '0' + # Section: 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' + And I click the section 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' + And I select "ABCDEF" from "Agency/Component" in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And I click 'Oldest' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the 'Oldest' sub-section I enter '2021-03-25' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the 'Oldest' sub-section I enter '132' + And I click '2nd' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '2nd' sub-section I enter '2021-06-11' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '2nd' sub-section I enter '77' + And I click '3rd' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '3rd' sub-section I enter '2021-06-22' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '3rd' sub-section I enter '71' + And I click '4th' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '4th' sub-section I enter '2021-07-09' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '4th' sub-section I enter '59' + And I click '5th' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '5th' sub-section I enter '2021-07-12' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '5th' sub-section I enter '58' + And I click '6th' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '6th' sub-section I enter '2021-07-12' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '6th' sub-section I enter '58' + And I click '7th' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '7th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '7th' sub-section I enter '0' + And I click '8th' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '8th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '8th' sub-section I enter '0' + And I click '9th' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '9th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '9th' sub-section I enter '0' + And I click '10th' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section + And for 'Date' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '10th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'VII.E. PENDING REQUESTS -- TEN OLDEST PENDING PERFECTED REQUESTS' section and the '10th' sub-section I enter 'N/A' + # Section: 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' + And I click the section 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' + And I select "ABCDEF" from "Agency/Component" in the 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' section + And for 'Number Granted' in the 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' section I enter '0' + And for 'Number Denied' in the 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' section I enter '0' + And for 'Median Number of Days to Adjudicate' in the 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' section I enter 'N/A' + And for 'Average Number of Days to Adjudicate' in the 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' section I enter 'N/A' + And for 'Number Adjudicated Within Ten Calendar Days' in the 'VIII.A. REQUESTS FOR EXPEDITED PROCESSING' section I enter '0' + # Section: 'VIII.B. Requests for Fee Waiver' + And I click the section 'VIII.B. Requests for Fee Waiver' + And I select "ABCDEF" from "Agency/Component" in the 'VIII.B. Requests for Fee Waiver' section + And for 'Number Granted' in the 'VIII.B. Requests for Fee Waiver' section I enter '15' + And for 'Number Denied' in the 'VIII.B. Requests for Fee Waiver' section I enter '0' + And for 'Median Number of Days to Adjudicate' in the 'VIII.B. Requests for Fee Waiver' section I enter 'N/A' + And for 'Average Number of Days to Adjudicate' in the 'VIII.B. Requests for Fee Waiver' section I enter 'N/A' + # Section: 'IX. FOIA Personnel and Costs' + And I click the section 'IX. FOIA Personnel and Costs' + And I select "ABCDEF" from "Agency/Component" in the 'IX. FOIA Personnel and Costs' section + And I click 'PERSONNEL' + And for 'Number of "Full-Time FOIA Employees"' I enter '0' + And for 'Number of "Equivalent Full-Time FOIA Employees"' I enter '0.10' + And I click 'COSTS' + And for 'Processing Costs' I enter '5000.00' + And for 'Litigation-Related Costs' I enter '0.00' + # Section: 'X. Fees Collected for Processing Request' + And I click the section 'X. Fees Collected for Processing Requests' + And I select "ABCDEF" from "Agency/Component" in the 'X. Fees Collected for Processing Requests' section + And for 'Total Amount of Fees Collected' I enter '0.00' + # Section: 'XI.A. Number of Times Subsection (C) Used' + And I click the section 'XI.A. Number of Times Subsection (C) Used' + And I select "ABCDEF" from "Agency/Component" in the 'XI.A. Number of Times Subsection (C) Used' section + And for 'Number of Times Subsection Used' I enter '0' + # Section: 'XI.B. Number of Subsection (A)(2) Postings' + And I click the section 'XI.B. Number of Subsection (A)(2) Postings' + And I select "ABCDEF" from "Agency/Component" in the 'XI.B. Number of Subsection (A)(2) Postings' section + And for 'Number of Records Posted by the FOIA Office' I enter '0' + And for 'Number of Records Posted by Program Offices' I enter '50' + # Section: 'XII.A. Backlogs of FOIA Requests and Administrative Appeals' + And I click the section 'XII.A. Backlogs of FOIA Requests and Administrative Appeals' + And I select "ABCDEF" from "Agency/Component" in the 'XII.A. Backlogs of FOIA Requests and Administrative Appeals' section + And for 'Number of Backlogged Requests as of End of Fiscal Year' I enter '6' + And for 'Number of Backlogged Appeals as of End of Fiscal Year' I enter '0' + # Section: 'XII.B. CONSULTATIONS ON FOIA REQUESTS -- RECEIVED, PROCESSED, AND PENDING CONSULTATIONS' + And I click the section 'XII.B. CONSULTATIONS ON FOIA REQUESTS -- RECEIVED, PROCESSED, AND PENDING CONSULTATIONS' + And I select "ABCDEF" from "Agency/Component" in the 'XII.B. CONSULTATIONS ON FOIA REQUESTS -- RECEIVED, PROCESSED, AND PENDING CONSULTATIONS' section + And for 'Number of Consultations Received from Other Agencies that were Pending at the Agency as of Start of the Fiscal Year' I enter '0' + And for 'Number of Consultations Received from Other Agencies During the Fiscal Year' I enter '3' + And for 'Number of Consultations Received from Other Agencies that were Processed by the Agency During the Fiscal Year' I enter '3' + # Section: 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' + And I click the section 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' + And I select "ABCDEF" from "Agency/Component" in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And I click 'Oldest' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the 'Oldest' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the 'Oldest' sub-section I enter '0' + And I click '2nd' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '2nd' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '2nd' sub-section I enter '0' + And I click '3rd' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '3rd' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '3rd' sub-section I enter '0' + And I click '4th' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '4th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '4th' sub-section I enter '0' + And I click '5th' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '5th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '5th' sub-section I enter '0' + And I click '6th' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '6th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '6th' sub-section I enter '0' + And I click '7th' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '7th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '7th' sub-section I enter '0' + And I click '8th' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '8th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '8th' sub-section I enter '0' + And I click '9th' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '9th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '9th' sub-section I enter '0' + And I click '10th' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section + And for 'Date' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '10th' sub-section I enter 'N/A' + And for 'Number of Days Pending' in the 'XII.C. CONSULTATIONS ON FOIA REQUESTS -- TEN OLDEST CONSULTATIONS RECEIVED FROM OTHER AGENCIES AND PENDING AT THE AGENCY' section and the '10th' sub-section I enter '0' + # Section: 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' + And I click the section 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' + And I select "ABCDEF" from "Agency/Component" in the 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' section + And I click 'NUMBER RECEIVED' in the 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' section + And for "Number Received During Fiscal Year from Last Year's Annual Report" in the 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' section and the 'NUMBER RECEIVED' sub-section I enter '12' + And for 'Number Received During Fiscal Year from Current Annual Report' in the 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' section and the 'NUMBER RECEIVED' sub-section I enter '21' + And I click 'NUMBER PROCESSED' in the 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' section + And for "Number Processed During Fiscal Year from Last Year's Annual Report" in the 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' section and the 'NUMBER PROCESSED' sub-section I enter '19' + And for 'Number Processed During Fiscal Year from Current Annual Report' in the 'XII.D.(1). COMPARISON OF NUMBERS OF REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- REQUESTS RECEIVED AND PROCESSED' section and the 'NUMBER PROCESSED' sub-section I enter '16' + # Section: 'XII.D.(2). COMPARISON OF BACKLOGGED REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT' + And I click the section 'XII.D.(2). COMPARISON OF BACKLOGGED REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT' + And I select "ABCDEF" from "Agency/Component" in the 'XII.D.(2). COMPARISON OF BACKLOGGED REQUESTS FROM PREVIOUS AND CURRENT ANNUAL REPORT' section + And for 'Number of Backlogged Requests as of End of the Fiscal Year from Previous Annual Report' I enter '1' + And for 'Number of Backlogged Requests as of End of the Fiscal Year from Current Annual Report' I enter '6' + # Section: "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" + And I click the section "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" + And I select "ABCDEF" from "Agency/Component" in the "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" section + And I click 'NUMBER RECEIVED' in the "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" section + And for "Number Received During Fiscal Year from Last Year's Annual Report" in the "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" section and the 'NUMBER RECEIVED' sub-section I enter '0' + And for 'Number Received During Fiscal Year from Current Annual Report' in the "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" section and the 'NUMBER RECEIVED' sub-section I enter '0' + And I click 'NUMBER PROCESSED' in the "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" section + And for "Number Processed During Fiscal Year from Last Year's Annual Report" in the "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" section and the 'NUMBER PROCESSED' sub-section I enter '0' + And for 'Number Processed During Fiscal Year from Current Annual Report' in the "XII.E.(1). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- APPEALS REC'D AND PROC" section and the 'NUMBER PROCESSED' sub-section I enter '0' + # Section: 'XII.E.(2). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- BACKLOGGED APPEALS' + And I click the section 'XII.E.(2). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- BACKLOGGED APPEALS' + And I select "ABCDEF" from "Agency/Component" in the 'XII.E.(2). COMPARISON OF NUMBERS OF ADMINISTRATIVE APPEALS FROM PREVIOUS AND CURRENT ANNUAL REPORT -- BACKLOGGED APPEALS' section + And for 'Number of Backlogged Appeals as of End of the Fiscal Year from Previous Annual Report' I enter '0' + And for 'Number of Backlogged Appeals as of End of the Fiscal Year from Current Annual Report' I enter '0' diff --git a/tests/behat/features/ProcessingDataTime.feature b/tests/behat/features/ProcessingDataTime.feature new file mode 100644 index 000000000..679065322 --- /dev/null +++ b/tests/behat/features/ProcessingDataTime.feature @@ -0,0 +1,117 @@ +@agency_component @annual_foia_report_data +Feature: Processing Data Time + In order to create Agency Component and Annual Report + As an Administrator I should be able to change field(Simple Median Days) + value in annual report to reflects on the same field of Agency component. + + Background: + Given I am logged in as a user with the "Administrator" role + And agency terms: + | name | field_agency_abbreviation | + | Test Agency | TESTAGENCY | + And agency_component content: + | title | field_agency | field_rep_start | field_agency_comp_abbreviation | path_alias | + | Test Agency Component | Test Agency | 2019-01-01 | TESTAGENCYCOMPONENT | /test-agency-component | + + @api @javascript + Scenario: Processing time data are automatically populated when reports are published + Given I am at "/test-agency-component" + Then I should see "Test Agency Component" + And I should not see "123456789" + And I am at "node/add/annual_foia_report_data" + And I select "Test Agency" from "Agency" + And I wait 5 seconds + And for 'FOIA Annual Report Year' I enter '2023' + And I check the box "TESTAGENCYCOMPONENT" + When I press the 'Save and continue' button + And I ignore the admin menu + And I click the section 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' + And I click 'Simple' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And I select "TESTAGENCYCOMPONENT" from "Agency/Component" in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And for 'Median Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '123456789' + And for 'Average Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '123456789' + And I select "Draft" from "Change to" + And I press the save button at the bottom of the page + And I click the edit tab + And I select "Submitted to OIP" from "Change to" + And I press the save button at the bottom of the page + And I click the edit tab + And I select "Cleared" from "Change to" + And I press the save button at the bottom of the page + And I click the edit tab + And I select "Published" from "Change to" + And I press the save button at the bottom of the page + And I am at "/test-agency-component" + Then I should see "Test Agency Component" + And I should see "123456789" + + @api @javascript + Scenario: The processing time fields can be manually enabled to prevent automatic population + Given I am at "/test-agency-component" + And I click the edit tab + And I expand the "Annual FOIA Report Start/Expiration Dates" + And I expand the "FOIA Portal Interoperability" + Then the element "Request Data Year" is "disabled" + And the element "Complex Average Days" is "disabled" + And the element "Complex Highest Days" is "disabled" + And the element "Complex Lowest Days" is "disabled" + And the element "Complex Median Days" is "disabled" + And the element "Expedited Average Days" is "disabled" + And the element "Expedited Highest Days" is "disabled" + And the element "Expedited Lowest Days" is "disabled" + And the element "Expedited Median Days" is "disabled" + And the element "Simple Average Days" is "disabled" + And the element "Simple Highest Days" is "disabled" + And the element "Simple Lowest Days" is "disabled" + And the element "Simple Median Days" is "disabled" + And I check the box "Require manual entry of processing times" + And for 'Street address' I enter '123 testing Address' + And for 'City' I enter 'Rockville' + And for 'Zip code' I enter '20857' + And I select "Maryland" from "State" + And I select "Email" from "Portal Submission Format" + And for 'Submission Email' I enter 'test@test.com' + And I press the save button at the bottom of the page + And I click the edit tab + Then the element "Request Data Year" is "enabled" + Then the element "Complex Average Days" is "enabled" + Then the element "Complex Highest Days" is "enabled" + Then the element "Complex Lowest Days" is "enabled" + Then the element "Complex Median Days" is "enabled" + Then the element "Expedited Average Days" is "enabled" + Then the element "Expedited Highest Days" is "enabled" + Then the element "Expedited Lowest Days" is "enabled" + Then the element "Expedited Median Days" is "enabled" + Then the element "Simple Average Days" is "enabled" + Then the element "Simple Highest Days" is "enabled" + Then the element "Simple Lowest Days" is "enabled" + Then the element "Simple Median Days" is "enabled" + And for "Simple Average Days" I enter "987654321" + And I press the save button at the bottom of the page + And I am at "node/add/annual_foia_report_data" + And I select "Test Agency" from "Agency" + And I wait 5 seconds + And for 'FOIA Annual Report Year' I enter '2023' + And I check the box "TESTAGENCYCOMPONENT" + When I press the 'Save and continue' button + And I ignore the admin menu + And I click the section 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' + And I click 'Simple' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And I select "TESTAGENCYCOMPONENT" from "Agency/Component" in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section + And for 'Median Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '123456789' + And for 'Average Number of Days' in the 'VII.A. FOIA REQUESTS -- RESPONSE TIME FOR ALL PROCESSED PERFECTED REQUESTS' section and the 'Simple' sub-section I enter '123456789' + And I select "Draft" from "Change to" + And I press the save button at the bottom of the page + And I click the edit tab + And I select "Submitted to OIP" from "Change to" + And I press the save button at the bottom of the page + And I click the edit tab + And I select "Cleared" from "Change to" + And I press the save button at the bottom of the page + And I click the edit tab + And I select "Published" from "Change to" + And I press the save button at the bottom of the page + And I am at "/test-agency-component" + Then I should see "Test Agency Component" + And I should not see "123456789" + And I should see "987654321" diff --git a/tests/behat/features/bootstrap/Drupal/FeatureContext.php b/tests/behat/features/bootstrap/Drupal/FeatureContext.php index c0cd3e42d..c110fc2da 100644 --- a/tests/behat/features/bootstrap/Drupal/FeatureContext.php +++ b/tests/behat/features/bootstrap/Drupal/FeatureContext.php @@ -6,6 +6,11 @@ use Behat\Behat\Context\SnippetAcceptingContext; use Behat\Behat\Hook\Scope\AfterScenarioScope; use Drupal\webform\Entity\Webform; +use Drupal\DrupalExtension\Hook\Scope\EntityScope; +use Drupal\DrupalExtension\Hook\Scope\AfterNodeCreateScope; +use Drupal\DrupalExtension\Hook\Scope\BeforeNodeCreateScope; +use Drupal\path_alias\Entity\PathAlias; +use Drupal\node\Entity\Node; /** * FeatureContext class defines custom step definitions for Behat. @@ -27,6 +32,41 @@ public function __construct() { } + /** + * Fix some problems that the Drupal extension causes with date fields. + * + * @afterNodeCreate + */ + public function fixNodeDateFieldValues(AfterNodeCreateScope $event) { + $entity = $event->getEntity(); + if (isset($entity->field_rep_start) && isset($entity->nid)) { + $existing_date = $entity->field_rep_start[0]; + $fixed_date = str_replace('T06:00:00', '', $entity->field_rep_start[0]); + if ($existing_date != $fixed_date) { + $node = Node::load($entity->nid); + $node->set('field_rep_start', $fixed_date); + $node->save(); + } + } + } + + /** + * Create aliases based on provided path_alias value. + * + * @afterNodeCreate + */ + public function nodePathAliasPostSave(AfterNodeCreateScope $event) { + $entity = $event->getEntity(); + if (isset($entity->path_alias) && isset($entity->nid)) { + $path_alias = PathAlias::create([ + 'path' => '/node/' . $entity->nid, + 'alias' => $entity->path_alias, + 'langcode' => 'en', + ]); + $path_alias->save(); + } + } + /** * Visits the delete path for the current entity. * @@ -242,4 +282,298 @@ public function iShouldSeeValueElement($element, $value) { } } + /** + * Check if the given disabled element value is expected or not. + * + * @Then the disabled :element element should have the value :value + */ + public function iShouldSeeValueOnDisabledElement($element, $value) { + $page = $this->getSession()->getPage(); + $element_value = $page->find('named', ['field', $element])->getAttribute('value'); + if ($element_value !== $value) { + throw new \Exception('Value: ' . $value . ' not found in element ' . $element . ', which had a value of ' . $element_value . '.'); + } + } + + /** + * Check if the given elementlabel exists or not. + * + * @Then the :elementlabel element should exists + */ + public function fieldShouldExists($elementlabel) { + $page = $this->getSession()->getPage(); + $element = $page->findField($elementlabel); + if (empty($element)) { + throw new \Exception(sprintf("Form element with label '%s' was not found on the page %s", $elementlabel, $this->getSession()->getCurrentUrl())); + } + } + + /** + * Check if the given element is enabled or not. + * + * @param $elementlabel + * string The label of the field + * + * @param $status + * string of "enabled" or "disabled" + * + * @Then the element :elementlabel is :status + */ + public function fieldShouldInputable($elementlabel, $status) { + $field = $this->getSession()->getPage()->find('named', ['field', $elementlabel]); + if ($status == 'enabled') { + if ($field->getAttribute('disabled') == 'disabled') { + throw new \Exception('field '. $elementlabel. ' is disabled '); + } + } + if ($status == 'disabled') { + if ($field->getAttribute('disabled') != 'disabled') { + throw new \Exception('field ' . $elementlabel . ' is enabled '); + } + } + } + + /** + * Expand the clickable section on the node edit page. + * + * @Then I expand the :section_name + */ + public function iExpandThe($section_name) { + $summaries = $this->getSession()->getPage()->findAll('css', '.seven-details__summary'); + $match = FALSE; + foreach ($summaries as $summary) { + $name = $summary->getText(); + if (stripos($name, $section_name) !== false) { + $match = $summary; + break; + } + } + if ($match) { + $match->click(); + $this->getSession()->wait(1000); + } + else { + throw new \Exception('Node edit section "' . $section_name . '" was not found.'); + } + } + + /** + * @Then I input the :value to :field_name in the node edit page + */ + public function iInputTheToInTheNodeEditPage($value, $field_name) { + $page = $this->getSession()->getPage(); + $field = $page->findField($field_name); + if (empty($field)) { + throw new \Exception('Node edit field "' . $field_name . '" was not found.'); + } else { + $field->setValue($value); + } + } + + /** + * Set field value by field id in the node edit page. + * + * @Then I set :value to :field_id + */ + public function iSetValueTo($value, $field_id) { + $page = $this->getSession()->getPage(); + $field = $page->find('css', $field_id); + $this->getSession()->wait(1000); + if (empty($field)) { + throw new \Exception('Node edit field "' . $field_id . '" was not found.'); + } else { + $field->setValue($value); + } + } + + /** + * Fills in specified field with date field + * Example: When I fill in "field_ID" with date "now" + * Example: When I fill in "field_ID" with date "-7 days" + * Example: When I fill in "field_ID" with date "+7 days" + * Example: When I fill in "field_ID" with date "-/+0 weeks" + * Example: When I fill in "field_ID" with date "-/+0 years" + * + * @When /^(?:|I )fill in "(?P(?:[^"]|\\")*)" with date "(?P(?:[^"]|\\")*)"$/ + */ + public function fillDateField($field, $value) { + $newDate = strtotime("$value"); + + $dateToSet = date("m/d/Y", $newDate); + $this->iSetValueTo($dateToSet, $field); + // $this->getSession()->getPage()->fillField($field, $dateToSet); + } + + /** + * Show field value by field id in the node edit page. + * + * @Then show field value :field_id + */ + public function showFieldValue($field_id) { + $page = $this->getSession()->getPage(); + $field = $page->find('css', $field_id); + $this->getSession()->wait(1000); + if (empty($field)) { + throw new \Exception('Node edit field "' . $field_id . '" was not found.'); + } else { + $value = $field->getAttribute('value'); + echo "field value: ". $value; + } + } + + /** + * @Given I ignore the admin menu + */ + public function iIgnoreTheAdminMenu() { + $this->getSession()->getDriver()->evaluateScript( + "jQuery('#toolbar-administration,#toolbar-item-administration').hide();" + ); + } + + /** + * @When I click :link in the :section section + */ + public function iClickInTheSection($link, $section) { + $page = $this->getSession()->getPage(); + $sidebar_element = $page->find('css', '.vertical-tabs__menu'); + $section_link = $page->find('named', ['link', $section]); + if (empty($section_link)) { + throw new \Exception('Section "' . $section . '" was not found.'); + } + $section_id = $section_link->getAttribute('href'); + $section_element = $page->find('css', $section_id); + $link_inside_section = $section_element->find('named', ['link', $link]); + if (empty($link_inside_section)) { + throw new \Exception('Link "' . $link . '" inside section "' . $section . '" was not found.'); + } + $link_inside_section->click(); + } + + /** + * @When I select :option from :select in the :section section + */ + public function iSelectFromInTheSection($option, $select, $section) { + $page = $this->getSession()->getPage(); + $sidebar_element = $page->find('css', '.vertical-tabs__menu'); + $section_link = $sidebar_element->find('named', ['link', $section]); + if (empty($section_link)) { + throw new \Exception('Section "' . $section . '" was not found.'); + } + $section_id = $section_link->getAttribute('href'); + $section_element = $page->find('css', $section_id); + $select_inside_section = $section_element->find('named', ['select', $select]); + if (empty($select_inside_section)) { + throw new \Exception('Select "' . $select . '" inside section "' . $section . '" was not found.'); + } + $select_inside_section->selectOption($option); + } + + /** + * @When for :input in the :section section I enter :value + */ + public function forInTheSectionIEnter($input, $section, $value) { + $page = $this->getSession()->getPage(); + $sidebar_element = $page->find('css', '.vertical-tabs__menu'); + $section_link = $sidebar_element->find('named', ['link', $section]); + if (empty($section_link)) { + throw new \Exception('Section "' . $section . '" was not found.'); + } + $section_id = $section_link->getAttribute('href'); + $section_element = $page->find('css', $section_id); + $input_inside_section = $section_element->find('named', ['field', $input]); + if (empty($input_inside_section)) { + throw new \Exception('Input "' . $input . '" inside section "' . $section . '" was not found.'); + } + $input_inside_section->setValue($value); + } + + /** + * @When for :input in the :section section and the :subsection sub-section I enter :value + */ + public function forInTheSectionAndTheSubSectionIEnter($input, $section, $subsection, $value) { + $page = $this->getSession()->getPage(); + $sidebar_element = $page->find('css', '.vertical-tabs__menu'); + $section_link = $sidebar_element->find('named', ['link', $section]); + if (empty($section_link)) { + throw new \Exception('Section "' . $section . '" was not found.'); + } + $section_id = $section_link->getAttribute('href'); + $section_element = $page->find('css', $section_id); + $subsection_link = $section_element->find('named', ['link', $subsection]); + if (empty($subsection_link)) { + throw new \Exception('Sub-section "' . $subsection . '" was not found.'); + } + $subsection_id = $subsection_link->getAttribute('href'); + $subsection_element = $page->find('css', $subsection_id); + $input_inside_subsection = $subsection_element->find('named', ['field', $input]); + if (empty($input_inside_subsection)) { + throw new \Exception('Input "' . $input . '" inside section "' . $section . '" and sub-section "' . $subsection . '" was not found.'); + } + $input_inside_subsection->setValue($value); + } + + /** + * @When I select :option from :select in the :section section and the :subsection sub-section + */ + public function iSelectFromInTheSectionAndSubsection($option, $select, $section, $subsection) { + $page = $this->getSession()->getPage(); + $sidebar_element = $page->find('css', '.vertical-tabs__menu'); + $section_link = $sidebar_element->find('named', ['link', $section]); + if (empty($section_link)) { + throw new \Exception('Section "' . $section . '" was not found.'); + } + $section_id = $section_link->getAttribute('href'); + $section_element = $page->find('css', $section_id); + $subsection_link = $section_element->find('named', ['link', $subsection]); + if (empty($subsection_link)) { + throw new \Exception('Sub-section "' . $subsection . '" was not found.'); + } + $subsection_id = $subsection_link->getAttribute('href'); + $subsection_element = $page->find('css', $subsection_id); + $select_inside_subsection = $subsection_element->find('named', ['select', $select]); + if (empty($select_inside_subsection)) { + throw new \Exception('Select "' . $select . '" inside section "' . $section . '" and sub-section "' . $subsection . '" was not found.'); + } + $select_inside_subsection->selectOption($option); + } + + /** + * @When I click the section :section + */ + public function iClickTheSection($section) { + $page = $this->getSession()->getPage(); + $sidebar_element = $page->find('css', '.vertical-tabs__menu'); + if (empty($sidebar_element)) { + throw new \Exception('There is no sidebar vertical tabs menu on this page - section not found.'); + } + $section_link = $sidebar_element->find('named', ['link', $section]); + if (empty($section_link)) { + throw new \Exception('Section "' . $section . '" was not found.'); + } + $section_link->click(); + } + + /** + * @Given I click the edit tab + */ + public function iClickTheEditTab() { + $primary_tabs = $this->getSession()->getPage()->find('css', '.tabs.primary'); + $edit_button = $primary_tabs->find('named', ['link', 'Edit']); + if (empty($edit_button)) { + throw new \Exception('Edit tab was not found.'); + } + $edit_button->click(); + } + + /** + * @Given I press the save button at the bottom of the page + */ + public function iPressTheSaveButton() { + $buttons = $this->getSession()->getPage()->find('css', '#edit-actions'); + $save_button = $buttons->find('named', ['button', 'Save']); + if (empty($save_button)) { + throw new \Exception('Save button was not found.'); + } + $save_button->click(); + } }