From 421bf2f7f07e953f1695659b099d91b016575292 Mon Sep 17 00:00:00 2001 From: GarrettEHill Date: Fri, 1 Nov 2024 15:12:09 -0700 Subject: [PATCH 1/7] Fix for supporting public groups shared with everyone --- src/queries/api/dashboards/qa/class.sql | 2 +- src/queries/api/dashboards/qa/dashboard.sql | 2 +- src/queries/api/dashboards/qa/fei.sql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/queries/api/dashboards/qa/class.sql b/src/queries/api/dashboards/qa/class.sql index cb993a60f2..39c066f342 100644 --- a/src/queries/api/dashboards/qa/class.sql +++ b/src/queries/api/dashboards/qa/class.sql @@ -482,7 +482,7 @@ BEGIN ) WHERE 1 = 1 -- Continued Filter for group if ssdi.group is defined from left joined table above - AND (group_filter IS NULL OR (g.id IS NOT NULL AND gc.id IS NOT NULL)) + AND (group_filter IS NULL OR (g.id IS NOT NULL AND (gc.id IS NOT NULL OR g."sharedWith" = 'Everyone'))) ORDER BY 1 ), applied_filtered_out_grants AS ( diff --git a/src/queries/api/dashboards/qa/dashboard.sql b/src/queries/api/dashboards/qa/dashboard.sql index 177bbb8d03..a08ef7d299 100644 --- a/src/queries/api/dashboards/qa/dashboard.sql +++ b/src/queries/api/dashboards/qa/dashboard.sql @@ -520,7 +520,7 @@ BEGIN ) WHERE 1 = 1 -- Continued Filter for group if ssdi.group is defined from left joined table above - AND (group_filter IS NULL OR (g.id IS NOT NULL AND gc.id IS NOT NULL)) + AND (group_filter IS NULL OR (g.id IS NOT NULL AND (gc.id IS NOT NULL OR g."sharedWith" = 'Everyone'))) ORDER BY 1 ), applied_filtered_out_grants AS ( diff --git a/src/queries/api/dashboards/qa/fei.sql b/src/queries/api/dashboards/qa/fei.sql index c0c6ca014d..34bb2740b2 100644 --- a/src/queries/api/dashboards/qa/fei.sql +++ b/src/queries/api/dashboards/qa/fei.sql @@ -435,7 +435,7 @@ BEGIN ) WHERE 1 = 1 -- Continued Filter for group if ssdi.group is defined from left joined table above - AND (group_filter IS NULL OR (g.id IS NOT NULL AND gc.id IS NOT NULL)) + AND (group_filter IS NULL OR (g.id IS NOT NULL AND (gc.id IS NOT NULL OR g."sharedWith" = 'Everyone'))) ORDER BY 1 ), applied_filtered_out_grants AS ( From 903dc38b1cb4a89b7bcd8d75d7cf6fd64d0799d5 Mon Sep 17 00:00:00 2001 From: GarrettEHill Date: Fri, 1 Nov 2024 15:12:27 -0700 Subject: [PATCH 2/7] Change missed on prior PR --- frontend/src/fetchers/ssdi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/fetchers/ssdi.js b/frontend/src/fetchers/ssdi.js index 88379dc0f6..7ec9cbec94 100644 --- a/frontend/src/fetchers/ssdi.js +++ b/frontend/src/fetchers/ssdi.js @@ -43,7 +43,7 @@ const allowedTopicsForQuery = { 'domainInstructionalSupport', 'createDate', ], - 'qa-dashboard': [...QA_DASHBOARD_FILTER_CONFIG.map((filter) => filter.id), + 'qa-dashboard': [ 'endDate', 'startDate', 'activityReportGoalResponse', From b3afa1dd31361588ce3911f11ac5163062ef3f64 Mon Sep 17 00:00:00 2001 From: GarrettEHill Date: Fri, 1 Nov 2024 15:38:53 -0700 Subject: [PATCH 3/7] lint --- frontend/src/fetchers/ssdi.js | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/fetchers/ssdi.js b/frontend/src/fetchers/ssdi.js index 7ec9cbec94..bc0c68b95d 100644 --- a/frontend/src/fetchers/ssdi.js +++ b/frontend/src/fetchers/ssdi.js @@ -1,7 +1,6 @@ import join from 'url-join'; import { get } from './index'; import { filtersToQueryString } from '../utils'; -import { QA_DASHBOARD_FILTER_CONFIG } from '../pages/QADashboard/constants'; const ssdiUrl = join('/', 'api', 'ssdi'); From 0f420d54305745fe1d5ee34982b585d359c897e8 Mon Sep 17 00:00:00 2001 From: GarrettEHill Date: Mon, 4 Nov 2024 07:43:25 -0800 Subject: [PATCH 4/7] Update ssdi.js --- frontend/src/fetchers/ssdi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/fetchers/ssdi.js b/frontend/src/fetchers/ssdi.js index bc0c68b95d..505bcb0720 100644 --- a/frontend/src/fetchers/ssdi.js +++ b/frontend/src/fetchers/ssdi.js @@ -42,7 +42,7 @@ const allowedTopicsForQuery = { 'domainInstructionalSupport', 'createDate', ], - 'qa-dashboard': [ + 'qa-dashboard': [ //all staticly defined 'endDate', 'startDate', 'activityReportGoalResponse', From 5c54f641ae88c8c5fb9467a1b2759fdaa58d7a7a Mon Sep 17 00:00:00 2001 From: GarrettEHill Date: Mon, 4 Nov 2024 07:43:44 -0800 Subject: [PATCH 5/7] Update ssdi.js --- frontend/src/fetchers/ssdi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/fetchers/ssdi.js b/frontend/src/fetchers/ssdi.js index 505bcb0720..bc0c68b95d 100644 --- a/frontend/src/fetchers/ssdi.js +++ b/frontend/src/fetchers/ssdi.js @@ -42,7 +42,7 @@ const allowedTopicsForQuery = { 'domainInstructionalSupport', 'createDate', ], - 'qa-dashboard': [ //all staticly defined + 'qa-dashboard': [ 'endDate', 'startDate', 'activityReportGoalResponse', From 81244e1bff84606ae0d59bcd5a2c957eed985b95 Mon Sep 17 00:00:00 2001 From: GarrettEHill Date: Mon, 4 Nov 2024 07:45:15 -0800 Subject: [PATCH 6/7] Update index.js --- frontend/src/pages/QADashboard/__tests__/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/pages/QADashboard/__tests__/index.js b/frontend/src/pages/QADashboard/__tests__/index.js index 1b22b00531..2e12b099e0 100644 --- a/frontend/src/pages/QADashboard/__tests__/index.js +++ b/frontend/src/pages/QADashboard/__tests__/index.js @@ -40,7 +40,7 @@ const combinedDates = `${encodeURIComponent(todayMinus12Months)}-${encodeURIComp const baseSsdiApi = '/api/ssdi/api/dashboards/qa/'; const noTtaApi = `${baseSsdiApi}no-tta.sql?region.in[]=1®ion.in[]=2&startDate.win=${combinedDates}&dataSetSelection[]=no_tta_widget`; const feiApi = `${baseSsdiApi}fei.sql?region.in[]=1®ion.in[]=2&createDate.win=${combinedDates}&dataSetSelection[]=with_fei_widget&dataSetSelection[]=with_fei_graph`; -const dashboardApi = `${baseSsdiApi}dashboard.sql?region.in[]=1®ion.in[]=2&startDate.win=${combinedDates}&createDate.win=${combinedDates}&dataSetSelection[]=delivery_method_graph&dataSetSelection[]=role_graph&dataSetSelection[]=activity_widget`; +const dashboardApi = `${baseSsdiApi}dashboard.sql?region.in[]=1®ion.in[]=2&startDate.win=${combinedDates}&dataSetSelection[]=delivery_method_graph&dataSetSelection[]=role_graph&dataSetSelection[]=activity_widget`; const classApi = `${baseSsdiApi}class.sql?region.in[]=1®ion.in[]=2&createDate.win=${combinedDates}&dataSetSelection[]=with_class_widget`; const RECIPIENTS_WITH_NO_TTA_DATA = [ { From 0477213e834e97e5948fe56fe29650549c9b9689 Mon Sep 17 00:00:00 2001 From: Matt Bevilacqua Date: Mon, 4 Nov 2024 11:27:16 -0500 Subject: [PATCH 7/7] Fetch QA dash data in parallel --- frontend/src/pages/QADashboard/index.js | 53 +++++++++++++------------ 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/frontend/src/pages/QADashboard/index.js b/frontend/src/pages/QADashboard/index.js index 8c904c9a47..278257fea3 100644 --- a/frontend/src/pages/QADashboard/index.js +++ b/frontend/src/pages/QADashboard/index.js @@ -88,21 +88,37 @@ export default function QADashboard() { setIsLoading(true); // Filters passed also contains region. try { - // Recipient with no tta data. - const recipientsWithNoTtaData = await getSelfServiceData( - 'recipients-with-no-tta', - filters, - ['no_tta_widget'], - ); + const [ + recipientsWithNoTtaData, + feiData, + classData, + dashboardData, + ] = await Promise.all([ + getSelfServiceData( + 'recipients-with-no-tta', + filters, + ['no_tta_widget'], + ), + getSelfServiceData( + 'recipients-with-ohs-standard-fei-goal', + filters, + ['with_fei_widget', 'with_fei_graph'], + ), + getSelfServiceData( + 'recipients-with-class-scores-and-goals', + filters, + ['with_class_widget'], + ), + getSelfServiceData( + 'qa-dashboard', + filters, + ['delivery_method_graph', 'role_graph', 'activity_widget'], + ), + ]); + const noTTAContainsFiltersThatAreNotAllowed = containsFiltersThatAreNotApplicable('recipients-with-no-tta', filters); const noTTAData = recipientsWithNoTtaData.find((item) => item.data_set === 'no_tta_widget'); - // FEI data. - const feiData = await getSelfServiceData( - 'recipients-with-ohs-standard-fei-goal', - filters, - ['with_fei_widget', 'with_fei_graph'], - ); const feiContainsFiltersThatAreNotAllowed = containsFiltersThatAreNotApplicable('recipients-with-ohs-standard-fei-goal', filters); const feiOverviewData = feiData.find((item) => item.data_set === 'with_fei_widget'); const feiGraphData = feiData.find((item) => item.data_set === 'with_fei_graph'); @@ -114,12 +130,6 @@ export default function QADashboard() { showDashboardFiltersNotApplicable: feiContainsFiltersThatAreNotAllowed, }; - // CLASS data. - const classData = await getSelfServiceData( - 'recipients-with-class-scores-and-goals', - filters, - ['with_class_widget'], - ); const classContainsFiltersThatAreNotAllowed = containsFiltersThatAreNotApplicable('recipients-with-class-scores-and-goals', filters); const classOverviewData = classData.find((item) => item.data_set === 'with_class_widget'); @@ -146,13 +156,6 @@ export default function QADashboard() { }, }; - // Dashboard data. - const dashboardData = await getSelfServiceData( - 'qa-dashboard', - filters, - ['delivery_method_graph', 'role_graph', 'activity_widget'], - ); - const showDashboardFiltersNotApplicable = containsFiltersThatAreNotApplicable('qa-dashboard', filters); const deliveryMethodData = dashboardData.find((item) => item.data_set === 'delivery_method_graph');