diff --git a/config/default/webform.webform.doj_atj_form.yml b/config/default/webform.webform.doj_atj_form.yml new file mode 100644 index 000000000..dc2c8e71b --- /dev/null +++ b/config/default/webform.webform.doj_atj_form.yml @@ -0,0 +1,330 @@ +uuid: 577189d0-87d2-4200-b93a-7cde199e861b +langcode: en +status: open +dependencies: + module: + - foia_webform +weight: 0 +open: null +close: null +uid: 1701 +template: false +archive: false +id: doj_atj_form +title: 'DOJ-ATJ Form' +description: '' +category: '' +elements: |- + name_first: + '#type': textfield + '#title': 'First name' + name_last: + '#type': textfield + '#title': 'Last name' + company_organization: + '#type': textfield + '#title': 'Your organization' + email: + '#type': email + '#title': 'Email address' + phone_number: + '#type': tel + '#title': 'Phone number' + fax_number: + '#type': tel + '#title': 'Fax number' + address_line1: + '#type': textfield + '#title': 'Mailing address 1' + address_line2: + '#type': textfield + '#title': 'Mailing address 2' + address_city: + '#type': textfield + '#title': City + address_state_province: + '#type': textfield + '#title': 'State or province' + address_zip_postal_code: + '#type': textfield + '#title': 'Zip or postal code' + address_country: + '#type': select + '#title': Country + '#default_value': 'United States' + '#options': country_names + request_category: + '#type': select + '#title': 'What type of requester are you?' + '#help': 'Please select the category that best fits you. This information helps FOIA personnel determine what fees, if any, may be applicable.' + '#options': + media: 'Representative of the news media' + educational: 'Educational Institution' + scientific: 'Non-commercial scientific institution' + commercial: 'Commercial-use requester' + other: 'All other requester' + request_description: + '#type': textarea + '#maxlength': '10000' + '#title': 'Your request' + '#help': 'A brief and clear description of the information you''d like to receive. Please be as specific as possible.' + '#required': true + fee_waiver: + '#type': select + '#title': 'Fee waiver' + '#default_value': 'no' + '#options': + 'no': 'No' + 'yes': 'Yes' + fee_waiver_explanation: + '#type': textarea + '#maxlength': '10000' + '#title': 'Fee waiver justification' + '#help': 'Leave this blank if you are not requesting a fee waiver. When making a request for a fee waiver you must explain how your request meets the fee waiver standard described above.' + fee_amount_willing: + '#type': textfield + '#title': 'The amount of money you’re willing to pay in fees, if any' + '#help': 'There is no initial fee required to submit a FOIA request, but the FOIA does allow people requesting records to be charged certain types of fees in some instances.' + '#pattern': '^(?=.)([+\-\$]?([0-9]*)(\.([0-9]+))?)$' + '#counter_type': word + '#counter_maximum': '1' + expedited_processing: + '#type': select + '#title': 'Expedited processing' + '#default_value': 'no' + '#options': + 'no': 'No' + 'yes': 'Yes' + expedited_processing_explanation: + '#type': textarea + '#maxlength': '10000' + '#title': 'Justification for expedited processing' + '#help': 'Leave this blank if you are not requesting expedited processing. When making a request for expedited processing you must explain how your request meets one of the expedition standards described above.' + attachments_supporting_documentation: + '#type': managed_file + '#title': 'Upload additional documentation' + '#multiple': true + '#max_filesize': '20' + '#file_extensions': 'gif jpg png txt pdf doc docx odf' +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: both + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: true + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: false + form_disable_back: false + form_submit_back: false + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: false + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 0 + preview_label: '' + preview_title: '' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: none + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: page + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: none + purge_days: null + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + foia_submission_queue: + id: foia_submission_queue + handler_id: foia_submission_queue + label: 'FOIA Submission Queue' + notes: '' + status: true + conditions: { } + weight: 0 + settings: + states: + - completed + to_mail: '' + to_options: { } + bcc_mail: '' + bcc_options: { } + cc_mail: '' + cc_options: { } + from_mail: default + from_options: { } + from_name: default + reply_to: '' + return_path: '' + sender_mail: '' + sender_name: '' + subject: 'FOIA Request Submission' + body: '[webform_submission:values:message:value]' + excluded_elements: { } + ignore_access: false + exclude_empty: true + html: true + attachments: false + debug: false + exclude_empty_checkbox: false + exclude_attachments: false + twig: false + theme_name: '' + parameters: { } +variants: { } diff --git a/config/default/webform_template.webform.yml b/config/default/webform_template.webform.yml index f4e186998..d228d4b58 100644 --- a/config/default/webform_template.webform.yml +++ b/config/default/webform_template.webform.yml @@ -518,3 +518,4 @@ doi_bie_form: 1 nrc_form_2: 1 nara_lp_bho_form: 1 ondc_form: 1 +doj_atj_form: 1 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 6cb4fe025..374d69d7e 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 @@ -10,7 +10,6 @@ use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Render\Markup; use Drupal\Core\StringTranslation\TranslatableMarkup; -use Drupal\node\Entity\Node; use Drupal\Core\Render\Element; /** @@ -601,11 +600,13 @@ function foia_annual_data_report_node_presave($entity) { $ac_nid = $ac_nid_value[0]['target_id']; // Node object - Agency Component. - $ac_node = Node::load($ac_nid); + $ac_node = \Drupal::entityTypeManager()->getStorage('node')->load($ac_nid); + $component_request_data_year = $ac_node->get('field_request_data_year')->getString(); $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) { + // of processing times" checkbox is not checked and request year + // greater than equal to annual report yr. + if (!$requiredManualProcessing && ($report_year >= $component_request_data_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)->getString(); diff --git a/tests/behat/features/ProcessingDataTime.feature b/tests/behat/features/ProcessingDataTime.feature index 679065322..87627d55c 100644 --- a/tests/behat/features/ProcessingDataTime.feature +++ b/tests/behat/features/ProcessingDataTime.feature @@ -44,7 +44,7 @@ Feature: Processing Data Time 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" @@ -115,3 +115,48 @@ Feature: Processing Data Time Then I should see "Test Agency Component" And I should not see "123456789" And I should see "987654321" + + @api @javascript + Scenario: Edits of past annual reports should not update processing times on component pages + Given I am at "/test-agency-component" + And I click the edit tab + 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 wait 5 seconds + And I click the edit tab + Then the element "Request Data Year" is "enabled" + And for 'Request Data Year' I enter '2023' + And I uncheck the box "Require manual entry of processing times" + And I press the save button at the bottom of the page + And I wait 5 seconds + 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 '2022' + 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" + And I should not see "123456789"