From 8381d1babdb4b669d9cb4b8bd205045c3d99e081 Mon Sep 17 00:00:00 2001 From: MuhGrayVA <98366428+MuhGrayVA@users.noreply.github.com> Date: Thu, 24 Aug 2023 12:36:31 -0400 Subject: [PATCH 1/5] Matt g/appeals 25438 (#19252) * APPEALS-25438 Added new function on legacy blocking tasks as well as new seed data generation path for scenario 1 edge case data * APPEALS-25438 Rubocop Fixes --- app/models/tasks/foia_task.rb | 5 ++ app/models/tasks/hearing_task.rb | 4 ++ app/models/tasks/privacy_act_task.rb | 5 ++ app/models/tasks/transcription_task.rb | 5 ++ app/models/tasks/translation_task.rb | 5 ++ lib/tasks/seed_legacy_appeal_tasks.rake | 89 ++++++++++++++++++++++++- 6 files changed, 110 insertions(+), 3 deletions(-) diff --git a/app/models/tasks/foia_task.rb b/app/models/tasks/foia_task.rb index 3641161fc8d..5a9f1cfd37c 100644 --- a/app/models/tasks/foia_task.rb +++ b/app/models/tasks/foia_task.rb @@ -7,4 +7,9 @@ class FoiaTask < Task def available_actions(user) super(user).reject { |action| action == Constants.TASK_ACTIONS.ASSIGN_TO_TEAM.to_h } end + + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end end diff --git a/app/models/tasks/hearing_task.rb b/app/models/tasks/hearing_task.rb index b5dff61b783..60af87957f9 100644 --- a/app/models/tasks/hearing_task.rb +++ b/app/models/tasks/hearing_task.rb @@ -21,6 +21,10 @@ def default_instructions [COPY::HEARING_TASK_DEFAULT_INSTRUCTIONS] end + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end def cancel_and_recreate hearing_task = HearingTask.create!( diff --git a/app/models/tasks/privacy_act_task.rb b/app/models/tasks/privacy_act_task.rb index 348ed41b317..6b180802476 100644 --- a/app/models/tasks/privacy_act_task.rb +++ b/app/models/tasks/privacy_act_task.rb @@ -6,6 +6,11 @@ class PrivacyActTask < Task include CavcAdminActionConcern + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end + def available_actions(user) return [] unless user diff --git a/app/models/tasks/transcription_task.rb b/app/models/tasks/transcription_task.rb index f1351a87d67..db8f2a996fa 100644 --- a/app/models/tasks/transcription_task.rb +++ b/app/models/tasks/transcription_task.rb @@ -39,6 +39,11 @@ def available_actions(user) end end + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end + def update_from_params(params, current_user) multi_transaction do verify_user_can_update!(current_user) diff --git a/app/models/tasks/translation_task.rb b/app/models/tasks/translation_task.rb index d79cacb2736..1e311566bb1 100644 --- a/app/models/tasks/translation_task.rb +++ b/app/models/tasks/translation_task.rb @@ -8,6 +8,11 @@ class TranslationTask < Task include CavcAdminActionConcern + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end + def self.create_from_root_task(root_task) create!(assigned_to: Translation.singleton, parent_id: root_task.id, appeal: root_task.appeal) end diff --git a/lib/tasks/seed_legacy_appeal_tasks.rake b/lib/tasks/seed_legacy_appeal_tasks.rake index 22b847c8a1e..9a14ba3a53d 100644 --- a/lib/tasks/seed_legacy_appeal_tasks.rake +++ b/lib/tasks/seed_legacy_appeal_tasks.rake @@ -1,7 +1,7 @@ # frozen_string_literal: true # to create legacy appeals with AMA Tasks added, run "bundle exec rake db:generate_legacy_appeals_with_tasks" -# then select an option between 'HearingTask', 'JudgeTask', 'AttorneyTask', 'ReviewTask', and 'Brieff_Curloc_81_Task' +# then select an option between 'HearingTask', 'JudgeTask', 'AttorneyTask', 'ReviewTask', 'Scenario1edge' and 'Brieff_Curloc_81_Task' namespace :db do desc "Generates a smattering of legacy appeals with VACOLS cases that have special issues assocaited with them" @@ -10,7 +10,7 @@ namespace :db do class << self def stamp_out_legacy_appeals(num_appeals_to_create, file_number, user, docket_number, task_type) # Changes location of vacols based on if you want a hearing task or only a legacy task in location 81 - bfcurloc = if task_type == "HEARINGTASK" + bfcurloc = if task_type == "HEARINGTASK" || task_type == "SCENARIO1EDGE" 57 elsif task_type == "BRIEFF_CURLOC_81_TASK" 81 @@ -156,6 +156,87 @@ namespace :db do $stdout.puts("You have created a Review task") end + ######################################################## + # Creates Edge case data for the LegacyAppeals that have just been generated + # Scenario 1 + def create_edge_case_task_for_legacy_appeals(appeal) + root_task = RootTask.find_or_create_by!(appeal: appeal) + rand_val = rand(100) + + case rand_val + when 0..33 + hearing_task = HearingTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + ScheduleHearingTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ) + when 34..66 + hearing_task = HearingTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + ScheduleHearingTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ).update(status: 'completed') + AssignHearingDispositionTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ) + when 67..100 + TranscriptionTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + end + + rand_val = rand(100) + + case rand_val + when 0..20 + FoiaTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 21..40 + PrivacyActTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 41..60 + PowerOfAttorneyRelatedMailTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 61..80 + TranslationTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 81..100 + CongressionalInterestMailTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + end + + $stdout.puts("You have created a Hearing Task") + end + def initialize_root_task_for_legacy_appeals(appeal) RootTask.find_or_create_by!(appeal: appeal) $stdout.puts("You have set the Location to 81") @@ -172,6 +253,8 @@ namespace :db do create_review_task_for_legacy_appeals(appeal, user) elsif task_type == "BRIEFF_CURLOC_81_TASK" initialize_root_task_for_legacy_appeals(appeal) + elsif task_type == "SCENARIO1EDGE" + create_edge_case_task_for_legacy_appeals(appeal) end # rubocop:enable end @@ -208,7 +291,7 @@ namespace :db do $stdout.puts("Which type of tasks do you want to add to these Legacy Appeals?") $stdout.puts("Hint: Options include 'HearingTask', 'JudgeTask', 'AttorneyTask', - 'ReviewTask', and 'Brieff_Curloc_81_Task'") + 'ReviewTask', 'Scenario1edge' and 'Brieff_Curloc_81_Task'") task_type = $stdin.gets.chomp.upcase if task_type == "JUDGETASK" || task_type == "REVIEWTASK" $stdout.puts("Enter the CSS ID of a judge user that you want to assign these appeals to") From c949c7c029dd9e1b8ddb2709e840f4c3e20056f0 Mon Sep 17 00:00:00 2001 From: cacevesva <109166981+cacevesva@users.noreply.github.com> Date: Thu, 24 Aug 2023 10:46:44 -0700 Subject: [PATCH 2/5] Revert "Matt g/appeals 25438 (#19252)" (#19256) This reverts commit 8381d1babdb4b669d9cb4b8bd205045c3d99e081. --- app/models/tasks/foia_task.rb | 5 -- app/models/tasks/hearing_task.rb | 4 -- app/models/tasks/privacy_act_task.rb | 5 -- app/models/tasks/transcription_task.rb | 5 -- app/models/tasks/translation_task.rb | 5 -- lib/tasks/seed_legacy_appeal_tasks.rake | 89 +------------------------ 6 files changed, 3 insertions(+), 110 deletions(-) diff --git a/app/models/tasks/foia_task.rb b/app/models/tasks/foia_task.rb index 5a9f1cfd37c..3641161fc8d 100644 --- a/app/models/tasks/foia_task.rb +++ b/app/models/tasks/foia_task.rb @@ -7,9 +7,4 @@ class FoiaTask < Task def available_actions(user) super(user).reject { |action| action == Constants.TASK_ACTIONS.ASSIGN_TO_TEAM.to_h } end - - ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution - def legacy_blocking - true - end end diff --git a/app/models/tasks/hearing_task.rb b/app/models/tasks/hearing_task.rb index 60af87957f9..b5dff61b783 100644 --- a/app/models/tasks/hearing_task.rb +++ b/app/models/tasks/hearing_task.rb @@ -21,10 +21,6 @@ def default_instructions [COPY::HEARING_TASK_DEFAULT_INSTRUCTIONS] end - ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution - def legacy_blocking - true - end def cancel_and_recreate hearing_task = HearingTask.create!( diff --git a/app/models/tasks/privacy_act_task.rb b/app/models/tasks/privacy_act_task.rb index 6b180802476..348ed41b317 100644 --- a/app/models/tasks/privacy_act_task.rb +++ b/app/models/tasks/privacy_act_task.rb @@ -6,11 +6,6 @@ class PrivacyActTask < Task include CavcAdminActionConcern - ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution - def legacy_blocking - true - end - def available_actions(user) return [] unless user diff --git a/app/models/tasks/transcription_task.rb b/app/models/tasks/transcription_task.rb index db8f2a996fa..f1351a87d67 100644 --- a/app/models/tasks/transcription_task.rb +++ b/app/models/tasks/transcription_task.rb @@ -39,11 +39,6 @@ def available_actions(user) end end - ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution - def legacy_blocking - true - end - def update_from_params(params, current_user) multi_transaction do verify_user_can_update!(current_user) diff --git a/app/models/tasks/translation_task.rb b/app/models/tasks/translation_task.rb index 1e311566bb1..d79cacb2736 100644 --- a/app/models/tasks/translation_task.rb +++ b/app/models/tasks/translation_task.rb @@ -8,11 +8,6 @@ class TranslationTask < Task include CavcAdminActionConcern - ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution - def legacy_blocking - true - end - def self.create_from_root_task(root_task) create!(assigned_to: Translation.singleton, parent_id: root_task.id, appeal: root_task.appeal) end diff --git a/lib/tasks/seed_legacy_appeal_tasks.rake b/lib/tasks/seed_legacy_appeal_tasks.rake index 9a14ba3a53d..22b847c8a1e 100644 --- a/lib/tasks/seed_legacy_appeal_tasks.rake +++ b/lib/tasks/seed_legacy_appeal_tasks.rake @@ -1,7 +1,7 @@ # frozen_string_literal: true # to create legacy appeals with AMA Tasks added, run "bundle exec rake db:generate_legacy_appeals_with_tasks" -# then select an option between 'HearingTask', 'JudgeTask', 'AttorneyTask', 'ReviewTask', 'Scenario1edge' and 'Brieff_Curloc_81_Task' +# then select an option between 'HearingTask', 'JudgeTask', 'AttorneyTask', 'ReviewTask', and 'Brieff_Curloc_81_Task' namespace :db do desc "Generates a smattering of legacy appeals with VACOLS cases that have special issues assocaited with them" @@ -10,7 +10,7 @@ namespace :db do class << self def stamp_out_legacy_appeals(num_appeals_to_create, file_number, user, docket_number, task_type) # Changes location of vacols based on if you want a hearing task or only a legacy task in location 81 - bfcurloc = if task_type == "HEARINGTASK" || task_type == "SCENARIO1EDGE" + bfcurloc = if task_type == "HEARINGTASK" 57 elsif task_type == "BRIEFF_CURLOC_81_TASK" 81 @@ -156,87 +156,6 @@ namespace :db do $stdout.puts("You have created a Review task") end - ######################################################## - # Creates Edge case data for the LegacyAppeals that have just been generated - # Scenario 1 - def create_edge_case_task_for_legacy_appeals(appeal) - root_task = RootTask.find_or_create_by!(appeal: appeal) - rand_val = rand(100) - - case rand_val - when 0..33 - hearing_task = HearingTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - ScheduleHearingTask.create!( - appeal: appeal, - parent: hearing_task, - assigned_to: Bva.singleton - ) - when 34..66 - hearing_task = HearingTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - ScheduleHearingTask.create!( - appeal: appeal, - parent: hearing_task, - assigned_to: Bva.singleton - ).update(status: 'completed') - AssignHearingDispositionTask.create!( - appeal: appeal, - parent: hearing_task, - assigned_to: Bva.singleton - ) - when 67..100 - TranscriptionTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - end - - rand_val = rand(100) - - case rand_val - when 0..20 - FoiaTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - when 21..40 - PrivacyActTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - when 41..60 - PowerOfAttorneyRelatedMailTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - when 61..80 - TranslationTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - when 81..100 - CongressionalInterestMailTask.create!( - appeal: appeal, - parent: root_task, - assigned_to: Bva.singleton - ) - end - - $stdout.puts("You have created a Hearing Task") - end - def initialize_root_task_for_legacy_appeals(appeal) RootTask.find_or_create_by!(appeal: appeal) $stdout.puts("You have set the Location to 81") @@ -253,8 +172,6 @@ namespace :db do create_review_task_for_legacy_appeals(appeal, user) elsif task_type == "BRIEFF_CURLOC_81_TASK" initialize_root_task_for_legacy_appeals(appeal) - elsif task_type == "SCENARIO1EDGE" - create_edge_case_task_for_legacy_appeals(appeal) end # rubocop:enable end @@ -291,7 +208,7 @@ namespace :db do $stdout.puts("Which type of tasks do you want to add to these Legacy Appeals?") $stdout.puts("Hint: Options include 'HearingTask', 'JudgeTask', 'AttorneyTask', - 'ReviewTask', 'Scenario1edge' and 'Brieff_Curloc_81_Task'") + 'ReviewTask', and 'Brieff_Curloc_81_Task'") task_type = $stdin.gets.chomp.upcase if task_type == "JUDGETASK" || task_type == "REVIEWTASK" $stdout.puts("Enter the CSS ID of a judge user that you want to assign these appeals to") From 9e55af347fc11b28bb44700f3e49deb3d8d7d011 Mon Sep 17 00:00:00 2001 From: MuhGrayVA <98366428+MuhGrayVA@users.noreply.github.com> Date: Thu, 24 Aug 2023 13:57:11 -0400 Subject: [PATCH 3/5] Calvin/appeals 28716 duplicate (#19257) * fixed decass creation in generator * Add UAT user --------- Co-authored-by: Calvin Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com> Co-authored-by: samasudhirreddy --- lib/generators/legacy_appeal_v2.rb | 1 + lib/generators/vacols/case.rb | 9 ++- lib/tasks/seed_legacy_appeal_tasks.rake | 78 ++++++++++++++++++++++--- lib/tasks/seed_legacy_appeals.rake | 1 + 4 files changed, 78 insertions(+), 11 deletions(-) diff --git a/lib/generators/legacy_appeal_v2.rb b/lib/generators/legacy_appeal_v2.rb index 14cdd73b418..47c9c753a7f 100644 --- a/lib/generators/legacy_appeal_v2.rb +++ b/lib/generators/legacy_appeal_v2.rb @@ -78,6 +78,7 @@ def add_inaccessible_appeal(vbms_id) def setup_vacols_data(attrs) Generators::Vacols::Case.create( attrs.merge( + decass_creation: true, case_attrs: { bfkey: attrs[:vacols_id], bfcorlid: attrs[:vbms_id] } diff --git a/lib/generators/vacols/case.rb b/lib/generators/vacols/case.rb index e5f35d11f98..a0056305f68 100644 --- a/lib/generators/vacols/case.rb +++ b/lib/generators/vacols/case.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + class Generators::Vacols::Case class << self def generate_pkseq @@ -120,9 +121,11 @@ def create(attrs = {}) note_attrs[:tsktknm] = custom_case_attrs[:bfkey] Generators::Vacols::Note.create(note_attrs) - decass_attrs = attrs[:decass_attrs].nil? ? {} : attrs[:decass_attrs] - decass_attrs[:defolder] = custom_case_attrs[:bfkey] - Generators::Vacols::Decass.create(decass_attrs) + if attrs[:decass_creation] + decass_attrs = attrs[:decass_attrs].nil? ? {} : attrs[:decass_attrs] + decass_attrs[:defolder] = custom_case_attrs[:bfkey] + Generators::Vacols::Decass.create(decass_attrs) + end # One to many relationships diff --git a/lib/tasks/seed_legacy_appeal_tasks.rake b/lib/tasks/seed_legacy_appeal_tasks.rake index 22b847c8a1e..326bcf657ea 100644 --- a/lib/tasks/seed_legacy_appeal_tasks.rake +++ b/lib/tasks/seed_legacy_appeal_tasks.rake @@ -23,10 +23,15 @@ namespace :db do fail ActiveRecord::RecordNotFound unless veteran vacols_veteran_record = find_or_create_vacols_veteran(veteran) - + decass_creation = if task_type == "ATTORNEYTASK" && user&.attorney_in_vacols? + true + else false + end cases = Array.new(num_appeals_to_create).each_with_index.map do key = VACOLS::Folder.maximum(:ticknum).next + staff = VACOLS::Staff.find_by(sdomainid: user.css_id) # grabs the staff object Generators::Vacols::Case.create( + decass_creation: decass_creation, corres_exists: true, folder_attrs: Generators::Vacols::Folder.folder_attrs.merge( custom_folder_attributes(vacols_veteran_record, docket_number.to_s) @@ -39,7 +44,58 @@ namespace :db do bfmpro: "ACT", bfddec: nil }, - decass_attrs: custom_decass_attributes(key, user, task_type) + # Clean this up + staff_attrs: { + stafkey: staff.stafkey, + susrpw: staff.susrpw || nil, + susrsec: staff.susrsec || nil, + susrtyp: staff.susrtyp || nil, + ssalut: staff.ssalut || nil, + snamef: staff.snamef, + snamemi: staff.snamemi, + snamel: staff.snamel, + slogid: staff.slogid, + stitle: staff.stitle, + sorg: staff.sorg || nil, + sdept: staff.sdept || nil, + saddrnum: staff.saddrnum || nil, + saddrst1: staff.saddrst1 || nil, + saddrst2: staff.saddrst2 || nil, + saddrcty: staff.saddrcty || nil, + saddrstt: staff.saddrstt || nil, + saddrcnty: staff.saddrcnty || nil, + saddrzip: staff.saddrzip || nil, + stelw: staff.stelw || nil, + stelwex: staff.stelwex || nil, + stelfax: staff.stelfax || nil, + stelh: staff.stelh || nil, + staduser: staff.staduser || nil, + stadtime: staff.stadtime || nil, + stmduser: staff.stmduser || nil, + stmdtime: staff.stmdtime || nil, + stc1: staff.stc1 || nil, + stc2: staff.stc2 || nil, + stc3: staff.stc3 || nil, + stc4: staff.stc4 || nil, + snotes: staff.snotes || nil, + sorc1: staff.sorc1 || nil, + sorc2: staff.sorc2 || nil, + sorc3: staff.sorc3 || nil, + sorc4: staff.sorc4 || nil, + sactive: staff.sactive || nil, + ssys: staff.ssys || nil, + sspare1: staff.sspare1 || nil, + sspare2: staff.sspare2 || nil, + sspare3: staff.sspare3 || nil, + smemgrp: staff.smemgrp || nil, + sfoiasec: staff.sfoiasec || nil, + srptsec: staff.srptsec || nil, + sattyid: staff.sattyid || nil, + svlj: staff.svlj || nil, + sinvsec: staff.sinvsec || nil, + sdomainid: staff.sdomainid || nil + }, + decass_attrs: custom_decass_attributes(key, user, decass_creation) ) end.compact @@ -55,12 +111,18 @@ namespace :db do } end - def custom_decass_attributes(key, user, task_type) - if task_type == "ATTORNEYTASK" && user&.attorney_in_vacols? + def custom_decass_attributes(key, user, decass_creation) + if decass_creation { defolder: key, deatty: user.id, - dereceive: "2020-11-17 00:00:00 UTC" + deteam: "SBO", + deassign: VacolsHelper.local_date_with_utc_timezone - 7.days, + dereceive: VacolsHelper.local_date_with_utc_timezone, + deadtim: VacolsHelper.local_date_with_utc_timezone - 7.days, + demdtim: VacolsHelper.local_date_with_utc_timezone, + decomp: VacolsHelper.local_date_with_utc_timezone, + dedeadline: VacolsHelper.local_date_with_utc_timezone + 120.days } else {} @@ -212,18 +274,18 @@ namespace :db do task_type = $stdin.gets.chomp.upcase if task_type == "JUDGETASK" || task_type == "REVIEWTASK" $stdout.puts("Enter the CSS ID of a judge user that you want to assign these appeals to") - $stdout.puts("Hint: Judge Options include 'BVAAABSHIRE', 'BVARERDMAN'") + $stdout.puts("Hint: Judge Options include 'BVAAABSHIRE', 'BVARERDMAN'") # Add UAT Options css_id = $stdin.gets.chomp.upcase user = User.find_by_css_id(css_id) fail ArgumentError, "User must be a Judge in Vacols for a #{task_type}", caller unless user.judge_in_vacols? elsif task_type == "ATTORNEYTASK" $stdout.puts("Which attorney do you want to assign the Attorney Task to?") - $stdout.puts("Hint: Attorney Options include 'BVASCASPER1', 'BVARERDMAN', 'BVALSHIELDS'") + $stdout.puts("Hint: Attorney Options include 'BVASCASPER1', 'BVARERDMAN', 'BVALSHIELDS'") # Add UAT Options css_id = $stdin.gets.chomp.upcase user = User.find_by_css_id(css_id) fail ArgumentError, "User must be an Attorney in Vacols for a #{task_type}", caller unless user.attorney_in_vacols? else - user = User.find_by_css_id("FAKE USER") + user = User.find_by_css_id("FAKE USER") || User.find_by_css_id("CASEFLOW_397") # need to update for an UAT User if UAT environment end fail ActiveRecord::RecordNotFound unless user diff --git a/lib/tasks/seed_legacy_appeals.rake b/lib/tasks/seed_legacy_appeals.rake index b28e7cecc22..d22c627e9f9 100644 --- a/lib/tasks/seed_legacy_appeals.rake +++ b/lib/tasks/seed_legacy_appeals.rake @@ -20,6 +20,7 @@ namespace :db do key = VACOLS::Folder.maximum(:ticknum).next Generators::Vacols::Case.create( corres_exists: true, + decass_creation: true, case_issue_attrs: [ Generators::Vacols::CaseIssue.case_issue_attrs.merge(ADD_SPECIAL_ISSUES ? special_issue_types(idx) : {}), Generators::Vacols::CaseIssue.case_issue_attrs.merge(ADD_SPECIAL_ISSUES ? special_issue_types(idx) : {}), From bc6e9ee7bdec8cd2c88093f1a70be4c167b0e1ac Mon Sep 17 00:00:00 2001 From: MuhGrayVA <98366428+MuhGrayVA@users.noreply.github.com> Date: Thu, 24 Aug 2023 14:43:41 -0400 Subject: [PATCH 4/5] Matt g/appeals 25438 (#19258) * APPEALS-25438 Added new function on legacy blocking tasks as well as new seed data generation path for scenario 1 edge case data * APPEALS-25438 Rubocop Fixes * APPEALS-25438 Added more complexity to hearing tasks --- app/models/tasks/foia_task.rb | 5 ++ app/models/tasks/hearing_task.rb | 4 + app/models/tasks/privacy_act_task.rb | 5 ++ app/models/tasks/transcription_task.rb | 5 ++ app/models/tasks/translation_task.rb | 5 ++ lib/tasks/seed_legacy_appeal_tasks.rake | 104 +++++++++++++++++++++++- 6 files changed, 125 insertions(+), 3 deletions(-) diff --git a/app/models/tasks/foia_task.rb b/app/models/tasks/foia_task.rb index 3641161fc8d..5a9f1cfd37c 100644 --- a/app/models/tasks/foia_task.rb +++ b/app/models/tasks/foia_task.rb @@ -7,4 +7,9 @@ class FoiaTask < Task def available_actions(user) super(user).reject { |action| action == Constants.TASK_ACTIONS.ASSIGN_TO_TEAM.to_h } end + + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end end diff --git a/app/models/tasks/hearing_task.rb b/app/models/tasks/hearing_task.rb index b5dff61b783..60af87957f9 100644 --- a/app/models/tasks/hearing_task.rb +++ b/app/models/tasks/hearing_task.rb @@ -21,6 +21,10 @@ def default_instructions [COPY::HEARING_TASK_DEFAULT_INSTRUCTIONS] end + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end def cancel_and_recreate hearing_task = HearingTask.create!( diff --git a/app/models/tasks/privacy_act_task.rb b/app/models/tasks/privacy_act_task.rb index 348ed41b317..6b180802476 100644 --- a/app/models/tasks/privacy_act_task.rb +++ b/app/models/tasks/privacy_act_task.rb @@ -6,6 +6,11 @@ class PrivacyActTask < Task include CavcAdminActionConcern + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end + def available_actions(user) return [] unless user diff --git a/app/models/tasks/transcription_task.rb b/app/models/tasks/transcription_task.rb index f1351a87d67..db8f2a996fa 100644 --- a/app/models/tasks/transcription_task.rb +++ b/app/models/tasks/transcription_task.rb @@ -39,6 +39,11 @@ def available_actions(user) end end + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end + def update_from_params(params, current_user) multi_transaction do verify_user_can_update!(current_user) diff --git a/app/models/tasks/translation_task.rb b/app/models/tasks/translation_task.rb index d79cacb2736..1e311566bb1 100644 --- a/app/models/tasks/translation_task.rb +++ b/app/models/tasks/translation_task.rb @@ -8,6 +8,11 @@ class TranslationTask < Task include CavcAdminActionConcern + ## Tag to determine if this task is considered a blocking task for Legacy Appeal Distribution + def legacy_blocking + true + end + def self.create_from_root_task(root_task) create!(assigned_to: Translation.singleton, parent_id: root_task.id, appeal: root_task.appeal) end diff --git a/lib/tasks/seed_legacy_appeal_tasks.rake b/lib/tasks/seed_legacy_appeal_tasks.rake index 326bcf657ea..82adecc9a65 100644 --- a/lib/tasks/seed_legacy_appeal_tasks.rake +++ b/lib/tasks/seed_legacy_appeal_tasks.rake @@ -1,7 +1,7 @@ # frozen_string_literal: true # to create legacy appeals with AMA Tasks added, run "bundle exec rake db:generate_legacy_appeals_with_tasks" -# then select an option between 'HearingTask', 'JudgeTask', 'AttorneyTask', 'ReviewTask', and 'Brieff_Curloc_81_Task' +# then select an option between 'HearingTask', 'JudgeTask', 'AttorneyTask', 'ReviewTask', 'Scenario1edge' and 'Brieff_Curloc_81_Task' namespace :db do desc "Generates a smattering of legacy appeals with VACOLS cases that have special issues assocaited with them" @@ -10,7 +10,7 @@ namespace :db do class << self def stamp_out_legacy_appeals(num_appeals_to_create, file_number, user, docket_number, task_type) # Changes location of vacols based on if you want a hearing task or only a legacy task in location 81 - bfcurloc = if task_type == "HEARINGTASK" + bfcurloc = if task_type == "HEARINGTASK" || task_type == "SCENARIO1EDGE" 57 elsif task_type == "BRIEFF_CURLOC_81_TASK" 81 @@ -218,6 +218,102 @@ namespace :db do $stdout.puts("You have created a Review task") end + ######################################################## + # Creates Edge case data for the LegacyAppeals that have just been generated + # Scenario 1 + def create_edge_case_task_for_legacy_appeals(appeal) + root_task = RootTask.find_or_create_by!(appeal: appeal) + rand_val = rand(100) + + case rand_val + when 0..33 + hearing_task = HearingTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + ScheduleHearingTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ) + when 34..66 + hearing_task = HearingTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + ScheduleHearingTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ).update(status: 'completed') + AssignHearingDispositionTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ) + when 67..100 + hearing_task = HearingTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + ScheduleHearingTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ).update(status: 'completed') + AssignHearingDispositionTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ).update(status: 'completed') + TranscriptionTask.create!( + appeal: appeal, + parent: hearing_task, + assigned_to: Bva.singleton + ) + end + + rand_val = rand(100) + + case rand_val + when 0..20 + FoiaTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 21..40 + PrivacyActTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 41..60 + PowerOfAttorneyRelatedMailTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 61..80 + TranslationTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + when 81..100 + CongressionalInterestMailTask.create!( + appeal: appeal, + parent: root_task, + assigned_to: Bva.singleton + ) + end + + $stdout.puts("You have created a Hearing Task") + end + def initialize_root_task_for_legacy_appeals(appeal) RootTask.find_or_create_by!(appeal: appeal) $stdout.puts("You have set the Location to 81") @@ -234,6 +330,8 @@ namespace :db do create_review_task_for_legacy_appeals(appeal, user) elsif task_type == "BRIEFF_CURLOC_81_TASK" initialize_root_task_for_legacy_appeals(appeal) + elsif task_type == "SCENARIO1EDGE" + create_edge_case_task_for_legacy_appeals(appeal) end # rubocop:enable end @@ -270,7 +368,7 @@ namespace :db do $stdout.puts("Which type of tasks do you want to add to these Legacy Appeals?") $stdout.puts("Hint: Options include 'HearingTask', 'JudgeTask', 'AttorneyTask', - 'ReviewTask', and 'Brieff_Curloc_81_Task'") + 'ReviewTask', 'Scenario1edge' and 'Brieff_Curloc_81_Task'") task_type = $stdin.gets.chomp.upcase if task_type == "JUDGETASK" || task_type == "REVIEWTASK" $stdout.puts("Enter the CSS ID of a judge user that you want to assign these appeals to") From ba51df4bd224f0c9a641bb5252baa5fdff1d84a3 Mon Sep 17 00:00:00 2001 From: vinner57 <128258952+vinner57@users.noreply.github.com> Date: Fri, 25 Aug 2023 11:29:18 -0400 Subject: [PATCH 5/5] Updating the success banner for scenario 6 (#19215) Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com> --- client/COPY.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/COPY.json b/client/COPY.json index 35d3a371732..dc0a6a0f118 100644 --- a/client/COPY.json +++ b/client/COPY.json @@ -663,7 +663,7 @@ "PULAC_CERULLO_REMINDER_MODAL_OPT_FALSE": "No, continue sending to Dispatch", "PULAC_CERULLO_REMINDER_MODAL_OPT_TRUE": "Yes, notify Pulac Cerullo team of jurisdictional conflict", "ASSIGN_TASK_SUCCESS_MESSAGE": "Task assigned to %s", - "REASSIGN_TASK_SUCCESS_MESSAGE": "Task reassigned to %s", + "REASSIGN_TASK_SUCCESS_MESSAGE": "You have successfully reassigned this task to %s", "HEARING_ASSIGN_TASK_SUCCESS_MESSAGE_DETAIL": "You can continue to assign tasks to yourself and others using this queue.", "ASSIGN_TASK_SUCCESS_MESSAGE_MOVE_LEGACY_APPEALS_VLJ": "You have successfully reassigned %s’s case to %s", "ASSIGN_TASK_SUCCESS_MESSAGE_MOVE_LEGACY_APPEALS_VLJ_MESSAGE_DETAIL": " All blocking task(s) have been cancelled.",