From 4bc38915d49b1e2fd0d4179c854312fee1a430b3 Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Wed, 7 Sep 2022 16:41:55 -0400 Subject: [PATCH 01/16] Evidence Window Fix --- app/models/tasks/hearing_task.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/tasks/hearing_task.rb b/app/models/tasks/hearing_task.rb index 6319464dd92..4efaf22a3a5 100644 --- a/app/models/tasks/hearing_task.rb +++ b/app/models/tasks/hearing_task.rb @@ -50,6 +50,9 @@ def when_child_task_completed(child_task) if appeal.tasks.open.where(type: HearingTask.name).empty? && appeal.is_a?(LegacyAppeal) update_legacy_appeal_location end + + super + end def create_change_hearing_disposition_task(instructions = nil) From d03c548112125745ee852cc4e811f985c167acfd Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Thu, 8 Sep 2022 09:49:52 -0400 Subject: [PATCH 02/16] IHP is handled by distribution task --- app/models/tasks/distribution_task.rb | 6 ++++++ app/models/tasks/hearing_task.rb | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/models/tasks/distribution_task.rb b/app/models/tasks/distribution_task.rb index ce02e513ed4..968e188c3b6 100644 --- a/app/models/tasks/distribution_task.rb +++ b/app/models/tasks/distribution_task.rb @@ -60,3 +60,9 @@ def set_assignee self.assigned_to ||= Bva.singleton end end + +def when_child_task_completed(child_task) + if appeal.tasks.open.where(type: HearingTask.name).empty? + IhpTasksFactory.new(parent).create_ihp_tasks! + end +end \ No newline at end of file diff --git a/app/models/tasks/hearing_task.rb b/app/models/tasks/hearing_task.rb index 4efaf22a3a5..6e409655731 100644 --- a/app/models/tasks/hearing_task.rb +++ b/app/models/tasks/hearing_task.rb @@ -50,9 +50,6 @@ def when_child_task_completed(child_task) if appeal.tasks.open.where(type: HearingTask.name).empty? && appeal.is_a?(LegacyAppeal) update_legacy_appeal_location end - - super - end def create_change_hearing_disposition_task(instructions = nil) @@ -129,8 +126,6 @@ def create_evidence_or_ihp_task assigned_to: MailTeam.singleton ) end - else - IhpTasksFactory.new(parent).create_ihp_tasks! end end From 14aa30c8a3af238e78019ad845d9f05eb02cb256 Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Thu, 8 Sep 2022 09:51:12 -0400 Subject: [PATCH 03/16] only AMA appeals should create IHP task --- app/models/tasks/distribution_task.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/tasks/distribution_task.rb b/app/models/tasks/distribution_task.rb index 968e188c3b6..59465c03ee4 100644 --- a/app/models/tasks/distribution_task.rb +++ b/app/models/tasks/distribution_task.rb @@ -62,7 +62,7 @@ def set_assignee end def when_child_task_completed(child_task) - if appeal.tasks.open.where(type: HearingTask.name).empty? + if appeal.tasks.open.where(type: HearingTask.name).empty? && appeal.is_a?(Appeal) IhpTasksFactory.new(parent).create_ihp_tasks! end end \ No newline at end of file From 52c7ef383fec396fe464f624c3217437a18bd445 Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Thu, 8 Sep 2022 10:03:29 -0400 Subject: [PATCH 04/16] missing super. --- app/models/tasks/distribution_task.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/tasks/distribution_task.rb b/app/models/tasks/distribution_task.rb index 59465c03ee4..30d5ddc839b 100644 --- a/app/models/tasks/distribution_task.rb +++ b/app/models/tasks/distribution_task.rb @@ -65,4 +65,6 @@ def when_child_task_completed(child_task) if appeal.tasks.open.where(type: HearingTask.name).empty? && appeal.is_a?(Appeal) IhpTasksFactory.new(parent).create_ihp_tasks! end + + super end \ No newline at end of file From 0cb892a633b1f9852c9bd688f9d1740e94b3449f Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Thu, 8 Sep 2022 12:59:36 -0400 Subject: [PATCH 05/16] parent to self --- app/models/tasks/distribution_task.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/tasks/distribution_task.rb b/app/models/tasks/distribution_task.rb index 30d5ddc839b..d21634f8c9f 100644 --- a/app/models/tasks/distribution_task.rb +++ b/app/models/tasks/distribution_task.rb @@ -63,7 +63,7 @@ def set_assignee def when_child_task_completed(child_task) if appeal.tasks.open.where(type: HearingTask.name).empty? && appeal.is_a?(Appeal) - IhpTasksFactory.new(parent).create_ihp_tasks! + IhpTasksFactory.new(self).create_ihp_tasks! end super From 83a473341426e2c4345f8f8cf57d3889c21903c6 Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Thu, 8 Sep 2022 14:35:07 -0400 Subject: [PATCH 06/16] IHP belong to hearing task --- app/models/tasks/distribution_task.rb | 8 -------- app/models/tasks/hearing_task.rb | 2 ++ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/app/models/tasks/distribution_task.rb b/app/models/tasks/distribution_task.rb index d21634f8c9f..ce02e513ed4 100644 --- a/app/models/tasks/distribution_task.rb +++ b/app/models/tasks/distribution_task.rb @@ -60,11 +60,3 @@ def set_assignee self.assigned_to ||= Bva.singleton end end - -def when_child_task_completed(child_task) - if appeal.tasks.open.where(type: HearingTask.name).empty? && appeal.is_a?(Appeal) - IhpTasksFactory.new(self).create_ihp_tasks! - end - - super -end \ No newline at end of file diff --git a/app/models/tasks/hearing_task.rb b/app/models/tasks/hearing_task.rb index 6e409655731..6319464dd92 100644 --- a/app/models/tasks/hearing_task.rb +++ b/app/models/tasks/hearing_task.rb @@ -126,6 +126,8 @@ def create_evidence_or_ihp_task assigned_to: MailTeam.singleton ) end + else + IhpTasksFactory.new(parent).create_ihp_tasks! end end From 202f1aeb4262345c42ae1af469f34ea2cbe43db0 Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Tue, 13 Sep 2022 10:23:04 -0400 Subject: [PATCH 07/16] RSPEC for ESW in progress --- .../evidence_submission_window_task_spec.rb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/spec/models/tasks/evidence_submission_window_task_spec.rb b/spec/models/tasks/evidence_submission_window_task_spec.rb index f3d27146880..998083ad23c 100644 --- a/spec/models/tasks/evidence_submission_window_task_spec.rb +++ b/spec/models/tasks/evidence_submission_window_task_spec.rb @@ -102,6 +102,29 @@ include_examples "works for all remand subtypes" end + context "appeal with no vso and hearing disposition is no_show, EvidenceSubmissionWindow in Progress" do + let(:docket_type) { Constants.AMA_DOCKETS.hearing } + let(:hearing) { create(:hearing, :no_show, :with_completed_tasks, appeal: appeal_no_vso) } + + let!(:task) do + EvidenceSubmissionWindowTask.create!( + appeal: appeal_no_vso, + assigned_to: MailTeam.singleton, + parent: HearingTaskAssociation.find_by(hearing_id: hearing.id).hearing_task + ) + end + + it "parent HearingTask is on hold and grandparent DistributionTask is on hold" do + task.reload + + expect(task.parent.status).to eq(Constants.TASK_STATUSES.on_hold) + expect(task.parent.parent.status).to eq(Constants.TASK_STATUSES.on_hold) + end + end + + include_examples "works for all remand subtypes" +end + context "on manual completion by user" do let(:mail_user) { create(:user) } let(:mail_team) { MailTeam.singleton } From 7e2f47ebaf57c755ac591420a16e95a22357d11f Mon Sep 17 00:00:00 2001 From: Noelle Adkin Date: Wed, 14 Sep 2022 12:25:22 -0400 Subject: [PATCH 08/16] RSPEC fix --- .../evidence_submission_window_task_spec.rb | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/spec/models/tasks/evidence_submission_window_task_spec.rb b/spec/models/tasks/evidence_submission_window_task_spec.rb index 998083ad23c..f3d27146880 100644 --- a/spec/models/tasks/evidence_submission_window_task_spec.rb +++ b/spec/models/tasks/evidence_submission_window_task_spec.rb @@ -102,29 +102,6 @@ include_examples "works for all remand subtypes" end - context "appeal with no vso and hearing disposition is no_show, EvidenceSubmissionWindow in Progress" do - let(:docket_type) { Constants.AMA_DOCKETS.hearing } - let(:hearing) { create(:hearing, :no_show, :with_completed_tasks, appeal: appeal_no_vso) } - - let!(:task) do - EvidenceSubmissionWindowTask.create!( - appeal: appeal_no_vso, - assigned_to: MailTeam.singleton, - parent: HearingTaskAssociation.find_by(hearing_id: hearing.id).hearing_task - ) - end - - it "parent HearingTask is on hold and grandparent DistributionTask is on hold" do - task.reload - - expect(task.parent.status).to eq(Constants.TASK_STATUSES.on_hold) - expect(task.parent.parent.status).to eq(Constants.TASK_STATUSES.on_hold) - end - end - - include_examples "works for all remand subtypes" -end - context "on manual completion by user" do let(:mail_user) { create(:user) } let(:mail_team) { MailTeam.singleton } From 1883aa669e387ef6e8f8d1cf99a78be433bdc609 Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Mon, 15 May 2023 15:10:08 -0500 Subject: [PATCH 09/16] Added Default parser to the URI escape in queue_column and it's spec --- app/models/queue_column.rb | 2 +- spec/models/queue_column_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/queue_column.rb b/app/models/queue_column.rb index 7a137c3fac8..55384a5c88a 100644 --- a/app/models/queue_column.rb +++ b/app/models/queue_column.rb @@ -62,7 +62,7 @@ def self.filter_option_hash(value, label) value ||= COPY::NULL_FILTER_LABEL # Double encode the values here since we un-encode them twice in QueueFilterParameter. Once when parsing the query # and again when unpacking the values of the selected filters into an array. - { value: URI.escape(URI.escape(value)), displayText: label } + { value: URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(value)), displayText: label } end private diff --git a/spec/models/queue_column_spec.rb b/spec/models/queue_column_spec.rb index 3e9eed6fc21..d8805f6edca 100644 --- a/spec/models/queue_column_spec.rb +++ b/spec/models/queue_column_spec.rb @@ -54,7 +54,7 @@ let(:label) { Generators::Random.word_characters(rand(1..20)) } def match_encoding(str) - URI.escape(URI.escape(str)) + URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(str)) end context "when input value is null" do From 88d6d93288d99381d32dd5db575aef9e057c05e5 Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Mon, 15 May 2023 15:16:46 -0500 Subject: [PATCH 10/16] Added a default parser for the URI methods in queue_filter_parameter and it's spec --- app/models/queue_filter_parameter.rb | 2 +- spec/models/queue_filter_parameter_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/queue_filter_parameter.rb b/app/models/queue_filter_parameter.rb index 578e296ff89..a37ac2ede85 100644 --- a/app/models/queue_filter_parameter.rb +++ b/app/models/queue_filter_parameter.rb @@ -25,7 +25,7 @@ def self.from_string(filter_string) end def self.escaped_value(value) - (URI.unescape(value) == COPY::NULL_FILTER_LABEL) ? nil : URI.unescape(value) + (URI::DEFAULT_PARSER.unescape(value) == COPY::NULL_FILTER_LABEL) ? nil : URI::DEFAULT_PARSER.unescape(value) end private diff --git a/spec/models/queue_filter_parameter_spec.rb b/spec/models/queue_filter_parameter_spec.rb index 908c6a650b3..448ad441719 100644 --- a/spec/models/queue_filter_parameter_spec.rb +++ b/spec/models/queue_filter_parameter_spec.rb @@ -7,8 +7,8 @@ subject { QueueFilterParameter.from_string(filter_string) } def encode_values(values) - URI.escape( - values.map(&URI.method(:escape)).join("|") + URI::DEFAULT_PARSER.escape( + values.map(&URI::DEFAULT_PARSER.method(:escape)).join("|") ) end From 292eba64803f9cfee47511298e0a8d154105fb09 Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Mon, 15 May 2023 15:18:40 -0500 Subject: [PATCH 11/16] Added default parser to URI method in efolder_service --- app/services/external_api/efolder_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/external_api/efolder_service.rb b/app/services/external_api/efolder_service.rb index 86187c39a53..b13661213a2 100644 --- a/app/services/external_api/efolder_service.rb +++ b/app/services/external_api/efolder_service.rb @@ -124,7 +124,7 @@ def self.efolder_key def self.send_efolder_request(endpoint, user, headers = {}, method: :get) DBService.release_db_connections - url = URI.escape(efolder_base_url + endpoint) + url = URI::DEFAULT_PARSER.escape(efolder_base_url + endpoint) request = HTTPI::Request.new(url) request.open_timeout = 600 # seconds request.read_timeout = 600 # seconds From c2929aeb4cf5d5d2b098c1799d9ad5f5422bdde2 Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Mon, 15 May 2023 15:20:18 -0500 Subject: [PATCH 12/16] Added default parser to URI method in va_notify_service --- app/services/external_api/va_notify_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/external_api/va_notify_service.rb b/app/services/external_api/va_notify_service.rb index 85f1d3180df..38a6febf294 100644 --- a/app/services/external_api/va_notify_service.rb +++ b/app/services/external_api/va_notify_service.rb @@ -189,7 +189,7 @@ def sms_request(participant_id, notification_id, sms_template_id, first_name, do # # Return: service_response: JSON from VA Notify or error def send_va_notify_request(query: {}, headers: {}, endpoint:, method: :get, body: nil) - url = URI.escape(BASE_URL + endpoint) + url = URI::DEFAULT_PARSER.escape(BASE_URL + endpoint) request = HTTPI::Request.new(url) request.query = query request.open_timeout = 30 From 8aa63f0e583d41ce7eaebfd8ffafe2e3f2886278 Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Mon, 15 May 2023 15:24:38 -0500 Subject: [PATCH 13/16] Added default parser to URI method in schedule_hearing_tasks_columns_controller_spec --- .../schedule_hearing_tasks_columns_controller_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/controllers/hearings/schedule_hearing_tasks_columns_controller_spec.rb b/spec/controllers/hearings/schedule_hearing_tasks_columns_controller_spec.rb index c982a6daa60..f68b2a884b5 100644 --- a/spec/controllers/hearings/schedule_hearing_tasks_columns_controller_spec.rb +++ b/spec/controllers/hearings/schedule_hearing_tasks_columns_controller_spec.rb @@ -64,12 +64,12 @@ expect(JSON.parse(response.body)["columns"].first["name"]).to eq("powerOfAttorneyName") expect(JSON.parse(response.body)["columns"].first["filter_options"]).to match_array( - [{ "value" => URI.escape(URI.escape(appeal.representative_name)), + [{ "value" => URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(appeal.representative_name)), "displayText" => "#{appeal.representative_name} (1)" }] ) expect(JSON.parse(response.body)["columns"].second["name"]).to eq("suggestedLocation") expect(JSON.parse(response.body)["columns"].second["filter_options"]).to match_array( - [{ "value" => URI.escape(URI.escape(hearing_location.formatted_location)), + [{ "value" => URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(hearing_location.formatted_location)), "displayText" => "#{hearing_location.formatted_location} (1)" }] ) end From 8a80e4e43b06655f235dafd54061941aaddd429d Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Mon, 15 May 2023 15:26:10 -0500 Subject: [PATCH 14/16] Added default parser to URI method in assign_hearing_tab_spec.rb --- spec/models/queue_tabs/assign_hearing_tab_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/models/queue_tabs/assign_hearing_tab_spec.rb b/spec/models/queue_tabs/assign_hearing_tab_spec.rb index eaa5bb201cc..95f3d7b5e7e 100644 --- a/spec/models/queue_tabs/assign_hearing_tab_spec.rb +++ b/spec/models/queue_tabs/assign_hearing_tab_spec.rb @@ -196,7 +196,7 @@ it "returns correct options" do cache_ama_appeals - expect(subject.first[:value]).to eq(URI.escape(URI.escape(appeal.representative_name))) + expect(subject.first[:value]).to eq(URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(appeal.representative_name))) expect(subject.first[:displayText]).to eq("#{appeal.representative_name} (2)") end end @@ -207,7 +207,7 @@ it "returns correct options" do cache_ama_appeals - expect(subject.first[:value]).to eq(URI.escape(URI.escape(hearing_location1.formatted_location))) + expect(subject.first[:value]).to eq(URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(hearing_location1.formatted_location))) expect(subject.first[:displayText]).to eq("#{hearing_location1.formatted_location} (2)") end end From 393d6eb707d622e7048583483773f253915a8544 Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Mon, 15 May 2023 15:28:45 -0500 Subject: [PATCH 15/16] Added default to URI method in task_filter_spec --- spec/models/task_filter_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/models/task_filter_spec.rb b/spec/models/task_filter_spec.rb index 74bf721db53..a58bf39bf68 100644 --- a/spec/models/task_filter_spec.rb +++ b/spec/models/task_filter_spec.rb @@ -88,7 +88,7 @@ context "filtering on suggested hearing location" do let(:col) { Constants.QUEUE_CONFIG.SUGGESTED_HEARING_LOCATION_COLUMN_NAME } let(:unescaped_val) { "San Francisco, CA(VA)" } - let(:val) { URI.escape(URI.escape(unescaped_val)) } + let(:val) { URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(unescaped_val)) } let(:filter_params) { ["col=#{col}&val=#{val}"] } it "calls the QueueFilterParameter#from_string" do @@ -459,7 +459,7 @@ def create_cached_appeals_for_tasks(tasks, case_type) let(:col) { Constants.QUEUE_CONFIG.SUGGESTED_HEARING_LOCATION_COLUMN_NAME } let(:unescaped_val) { hearing_location_sfo.formatted_location } - let(:val) { URI.escape(URI.escape(unescaped_val)) } + let(:val) { URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(unescaped_val)) } let(:filter_params) { ["col=#{col}&val=#{val}"] } it "returns the correct task" do From 84063e3e02a61f59c73a30cecf619bb4d008df69 Mon Sep 17 00:00:00 2001 From: Sean Craig Date: Tue, 16 May 2023 11:09:07 -0500 Subject: [PATCH 16/16] Cleaned up some lint in assign_hearing_tab_spec --- spec/models/queue_tabs/assign_hearing_tab_spec.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spec/models/queue_tabs/assign_hearing_tab_spec.rb b/spec/models/queue_tabs/assign_hearing_tab_spec.rb index 95f3d7b5e7e..1572d2d34e8 100644 --- a/spec/models/queue_tabs/assign_hearing_tab_spec.rb +++ b/spec/models/queue_tabs/assign_hearing_tab_spec.rb @@ -196,7 +196,9 @@ it "returns correct options" do cache_ama_appeals - expect(subject.first[:value]).to eq(URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(appeal.representative_name))) + expect(subject.first[:value]).to eq( + URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(appeal.representative_name)) + ) expect(subject.first[:displayText]).to eq("#{appeal.representative_name} (2)") end end @@ -207,7 +209,9 @@ it "returns correct options" do cache_ama_appeals - expect(subject.first[:value]).to eq(URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(hearing_location1.formatted_location))) + expect(subject.first[:value]).to eq( + URI::DEFAULT_PARSER.escape(URI::DEFAULT_PARSER.escape(hearing_location1.formatted_location)) + ) expect(subject.first[:displayText]).to eq("#{hearing_location1.formatted_location} (2)") end end