Please{' '}
-
+
contact us
{' '}
with any questions or concerns, and{' '}
diff --git a/frontend/src/reports/WhatDataAreMissing.tsx b/frontend/src/reports/WhatDataAreMissing.tsx
index d4481a66ae..b39c5e3ec7 100644
--- a/frontend/src/reports/WhatDataAreMissing.tsx
+++ b/frontend/src/reports/WhatDataAreMissing.tsx
@@ -1,4 +1,4 @@
-import { CONTACT_TAB_LINK } from '../utils/internalRoutes'
+import { ABOUT_US_PAGE_LINK } from '../utils/internalRoutes'
import { LinkWithStickyParams } from '../utils/urlutils'
import {
MissingCovidData,
@@ -73,7 +73,7 @@ export default function WhatDataAreMissing(props: WhatDataAreMissingProps) {
Do you have information that belongs on the Health Equity Tracker?{' '}
-
+
We would love to hear from you!
diff --git a/frontend/src/styles/HetComponents/HetCloseButton.tsx b/frontend/src/styles/HetComponents/HetCloseButton.tsx
new file mode 100644
index 0000000000..7be1a1e80f
--- /dev/null
+++ b/frontend/src/styles/HetComponents/HetCloseButton.tsx
@@ -0,0 +1,19 @@
+import { Button } from "@mui/material"
+import CloseIcon from '@mui/icons-material/Close'
+
+interface HetCloseButtonProps {
+ onClick: () => void,
+ ariaLabel: string
+}
+
+export default function HetCloseButton(props: HetCloseButtonProps) {
+ return (
+
)
+}
diff --git a/frontend/src/styles/HetComponents/HetFooterNav.tsx b/frontend/src/styles/HetComponents/HetFooterNav.tsx
index b450af5990..293bfce60e 100644
--- a/frontend/src/styles/HetComponents/HetFooterNav.tsx
+++ b/frontend/src/styles/HetComponents/HetFooterNav.tsx
@@ -2,7 +2,7 @@ import {
EXPLORE_DATA_PAGE_LINK,
TERMS_OF_USE_PAGE_LINK,
FAQ_TAB_LINK,
- CONTACT_TAB_LINK,
+ ABOUT_US_PAGE_LINK,
METHODOLOGY_PAGE_LINK,
} from '../../utils/internalRoutes'
import HetCopyright from './HetCopywright'
@@ -17,9 +17,9 @@ export default function HetFooterLinks() {
{[
['Explore Data', EXPLORE_DATA_PAGE_LINK],
['Methods', METHODOLOGY_PAGE_LINK],
- ['FAQs', `${FAQ_TAB_LINK}`, 'Frequently Asked Questions'],
- ['Contact Us', `${CONTACT_TAB_LINK}`],
- ['Terms of Use', `${TERMS_OF_USE_PAGE_LINK}`],
+ ['FAQs', FAQ_TAB_LINK, 'Frequently Asked Questions'],
+ ['Contact Us', ABOUT_US_PAGE_LINK],
+ ['Terms of Use', TERMS_OF_USE_PAGE_LINK],
].map(([label, url, ariaLabel]) => (
void
id?: string
className?: string
+ buttonClassName?: string
ariaLabel?: string
underline?: boolean
}
@@ -18,6 +19,7 @@ export default function HetLinkButton(props: HetLinkButtonProps) {
href={props.href}
onClick={props.onClick}
aria-label={props.ariaLabel}
+ className={props.buttonClassName}
>
{props.children}
diff --git a/frontend/src/utils/hooks/useDeprecatedParamRedirects.tsx b/frontend/src/utils/hooks/useDeprecatedParamRedirects.tsx
index 0f9e0553ca..d83c7f9754 100644
--- a/frontend/src/utils/hooks/useDeprecatedParamRedirects.tsx
+++ b/frontend/src/utils/hooks/useDeprecatedParamRedirects.tsx
@@ -1,7 +1,7 @@
import { useHistory } from 'react-router-dom'
import { METRIC_CONFIG, type DataTypeId } from '../../data/config/MetricConfig'
import { EXPLORE_DATA_PAGE_LINK } from '../internalRoutes'
-import { MADLIB_SELECTIONS_PARAM, useSearchParams } from '../urlutils'
+import { EXTREMES_1_PARAM_KEY, MADLIB_SELECTIONS_PARAM, useSearchParams } from '../urlutils'
// Ensures backwards compatibility for external links to old DataTypeIds
// NOTE: these redirects will lose any incoming demographic, data type, and card hash settings
@@ -25,6 +25,7 @@ export default function useDeprecatedParamRedirects() {
const history = useHistory()
const params = useSearchParams()
const mlsParam = params[MADLIB_SELECTIONS_PARAM]
+ const extremesParam = params[EXTREMES_1_PARAM_KEY]
if (mlsParam) {
// isolate the id from the param string
@@ -37,13 +38,13 @@ export default function useDeprecatedParamRedirects() {
dropdownIdSwaps[dropdownVarId1]
)
history.push(
- `${EXPLORE_DATA_PAGE_LINK}?${MADLIB_SELECTIONS_PARAM}=${newMlsParam}`
+ `${EXPLORE_DATA_PAGE_LINK}?${MADLIB_SELECTIONS_PARAM}=${newMlsParam}${extremesParam ? `&${extremesParam}` : ''}`
)
} else if (
// otherwise handle other malformed ids in param and redirect to helper box
!Object.keys(METRIC_CONFIG).includes(dropdownVarId1)
) {
- history.push(EXPLORE_DATA_PAGE_LINK)
+ history.push(`${EXPLORE_DATA_PAGE_LINK}`)
}
}
diff --git a/frontend/src/utils/hooks/useDownloadCardImage.tsx b/frontend/src/utils/hooks/useDownloadCardImage.tsx
index c76ccd0644..68752ece1d 100644
--- a/frontend/src/utils/hooks/useDownloadCardImage.tsx
+++ b/frontend/src/utils/hooks/useDownloadCardImage.tsx
@@ -5,16 +5,16 @@ import { type ScrollableHashId } from './useStepObserver'
import {
ALT_TABLE_VIEW_1_PARAM_KEY,
ALT_TABLE_VIEW_2_PARAM_KEY,
- HIGHEST_LOWEST_GEOS_1_PARAM_KEY,
- HIGHEST_LOWEST_GEOS_2_PARAM_KEY,
+ EXTREMES_1_PARAM_KEY,
+ EXTREMES_2_PARAM_KEY,
} from '../urlutils'
import { het } from '../../styles/DesignTokens'
const DROPDOWN_ELEMENT_IDS = [
ALT_TABLE_VIEW_1_PARAM_KEY,
ALT_TABLE_VIEW_2_PARAM_KEY,
- HIGHEST_LOWEST_GEOS_1_PARAM_KEY,
- HIGHEST_LOWEST_GEOS_2_PARAM_KEY,
+ EXTREMES_1_PARAM_KEY,
+ EXTREMES_2_PARAM_KEY,
]
const LOGO_FONT_COLOR = het.altGreen
@@ -175,9 +175,9 @@ export function useDownloadCardImage(
const footerCanvas = footerContentRef
? await html2canvas(footerContentRef.current as HTMLElement, {
- logging: true,
- useCORS: true,
- })
+ logging: true,
+ useCORS: true,
+ })
: null
const combinedCanvasHeight =
diff --git a/frontend/src/utils/internalRoutes.ts b/frontend/src/utils/internalRoutes.ts
index f29a5a9bdf..84b4527370 100644
--- a/frontend/src/utils/internalRoutes.ts
+++ b/frontend/src/utils/internalRoutes.ts
@@ -3,14 +3,13 @@ export const HET_URL = 'https://healthequitytracker.org';
export const EXPLORE_DATA_PAGE_LINK = '/exploredata';
export const DATA_CATALOG_PAGE_LINK = '/datacatalog';
export const NEWS_PAGE_LINK = '/news';
-export const ABOUT_US_PAGE_LINK = '/aboutus';
+export const SHARE_YOUR_STORY_TAB_LINK = '/shareyourstory';
export const WHAT_IS_HEALTH_EQUITY_PAGE_LINK = '/whatishealthequity';
-export const TERMS_OF_USE_PAGE_LINK = '/termsofuse';
export const FAQ_TAB_LINK = '/faqs';
-export const CONTACT_TAB_LINK = '/contact';
-export const OURTEAM_TAB_LINK = '/ourteam';
-export const SHARE_YOUR_STORY_TAB_LINK = '/shareyourstory';
-
+export const TERMS_OF_USE_PAGE_LINK = '/termsofuse';
+export const ABOUT_US_PAGE_LINK = '/aboutus';
+export const OLD_CONTACT_LINK = '/contact';
+export const OLD_OURTEAM_LINK = '/ourteam';
export const OLD_AGE_ADJUSTMENT_LINK = '/ageadjustment';
// NEW METHODOLOGY SECTIONS
diff --git a/frontend/src/utils/urlutils.tsx b/frontend/src/utils/urlutils.tsx
index 21c0b1aac4..8d86befbb8 100644
--- a/frontend/src/utils/urlutils.tsx
+++ b/frontend/src/utils/urlutils.tsx
@@ -42,8 +42,8 @@ export const DEMOGRAPHIC_PARAM = 'demo'
export const TOPIC_INFO_PARAM_KEY = 'topic-info'
export const MULTIPLE_MAPS_1_PARAM_KEY = 'multiple-maps'
export const MULTIPLE_MAPS_2_PARAM_KEY = 'multiple-maps2'
-export const HIGHEST_LOWEST_GEOS_1_PARAM_KEY = 'highest-lowest-geos'
-export const HIGHEST_LOWEST_GEOS_2_PARAM_KEY = 'highest-lowest-geos2'
+export const EXTREMES_1_PARAM_KEY = 'extremes'
+export const EXTREMES_2_PARAM_KEY = 'extremes2'
export const ALT_TABLE_VIEW_1_PARAM_KEY = 'alt-table-view1'
export const ALT_TABLE_VIEW_2_PARAM_KEY = 'alt-table-view2'
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index 8414c70e78..8b0778a817 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -29,6 +29,7 @@
},
"include": [
"src",
+ "playwright.config.ts"
],
"exclude": [
"src/assets",
diff --git a/python/datasources/data_sources.py b/python/datasources/data_sources.py
index 96e728f951..8d863463ec 100644
--- a/python/datasources/data_sources.py
+++ b/python/datasources/data_sources.py
@@ -7,7 +7,6 @@
from datasources.cawp_time import CAWPTimeData
from datasources.cdc_hiv import CDCHIVData
from datasources.cdc_restricted import CDCRestrictedData
-from datasources.cdc_svi_county import CDCSviCounty
from datasources.cdc_vaccination_county import CDCVaccinationCounty
from datasources.cdc_vaccination_national import CDCVaccinationNational
from datasources.cdc_wisqars import CDCWisqarsData
@@ -37,7 +36,6 @@
CAWPTimeData.get_id(): CAWPTimeData(),
CDCHIVData.get_id(): CDCHIVData(),
CDCRestrictedData.get_id(): CDCRestrictedData(),
- CDCSviCounty.get_id(): CDCSviCounty(),
CDCVaccinationCounty.get_id(): CDCVaccinationCounty(),
CDCVaccinationNational.get_id(): CDCVaccinationNational(),
CDCWisqarsData.get_id(): CDCWisqarsData(),
diff --git a/python/tests/data/cdc_svi_county/cdc_svi_county_test.csv b/python/tests/data/cdc_svi_county/cdc_svi_county_test.csv
deleted file mode 100644
index 3481e663a2..0000000000
--- a/python/tests/data/cdc_svi_county/cdc_svi_county_test.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-ST,STATE,ST_ABBR,STCNTY,COUNTY,FIPS,LOCATION,AREA_SQMI,E_TOTPOP,M_TOTPOP,E_HU,M_HU,E_HH,M_HH,E_POV150,M_POV150,E_UNEMP,M_UNEMP,E_HBURD,M_HBURD,E_NOHSDP,M_NOHSDP,E_UNINSUR,M_UNINSUR,E_AGE65,M_AGE65,E_AGE17,M_AGE17,E_DISABL,M_DISABL,E_SNGPNT,M_SNGPNT,E_LIMENG,M_LIMENG,E_MINRTY,M_MINRTY,E_MUNIT,M_MUNIT,E_MOBILE,M_MOBILE,E_CROWD,M_CROWD,E_NOVEH,M_NOVEH,E_GROUPQ,M_GROUPQ,EP_POV150,MP_POV150,EP_UNEMP,MP_UNEMP,EP_HBURD,MP_HBURD,EP_NOHSDP,MP_NOHSDP,EP_UNINSUR,MP_UNINSUR,EP_AGE65,MP_AGE65,EP_AGE17,MP_AGE17,EP_DISABL,MP_DISABL,EP_SNGPNT,MP_SNGPNT,EP_LIMENG,MP_LIMENG,EP_MINRTY,MP_MINRTY,EP_MUNIT,MP_MUNIT,EP_MOBILE,MP_MOBILE,EP_CROWD,MP_CROWD,EP_NOVEH,MP_NOVEH,EP_GROUPQ,MP_GROUPQ,EPL_POV150,EPL_UNEMP,EPL_HBURD,EPL_NOHSDP,EPL_UNINSUR,SPL_THEME1,RPL_THEME1,EPL_AGE65,EPL_AGE17,EPL_DISABL,EPL_SNGPNT,EPL_LIMENG,SPL_THEME2,RPL_THEME2,EPL_MINRTY,SPL_THEME3,RPL_THEME3,EPL_MUNIT,EPL_MOBILE,EPL_CROWD,EPL_NOVEH,EPL_GROUPQ,SPL_THEME4,RPL_THEME4,SPL_THEMES,RPL_THEMES,F_POV150,F_UNEMP,F_HBURD,F_NOHSDP,F_UNINSUR,F_THEME1,F_AGE65,F_AGE17,F_DISABL,F_SNGPNT,F_LIMENG,F_THEME2,F_MINRTY,F_THEME3,F_MUNIT,F_MOBILE,F_CROWD,F_NOVEH,F_GROUPQ,F_THEME4,F_TOTAL,E_DAYPOP,E_NOINT,M_NOINT,E_AFAM,M_AFAM,E_HISP,M_HISP,E_ASIAN,M_ASIAN,E_AIAN,M_AIAN,E_NHPI,M_NHPI,E_TWOMORE,M_TWOMORE,E_OTHERRACE,M_OTHERRACE,EP_NOINT,MP_NOINT,EP_AFAM,MP_AFAM,EP_HISP,MP_HISP,EP_ASIAN,MP_ASIAN,EP_AIAN,MP_AIAN,EP_NHPI,MP_NHPI,EP_TWOMORE,MP_TWOMORE,EP_OTHERRACE,MP_OTHERRACE
-01,Alabama,AL,01001,Autauga County,01001,"Autauga County, Alabama",594.454786355022,58761,0,24457,41,22308,369,11780,1363,752,215,4389,582,3857,512,4225,753,9176,98,13766,42,9425,631,1247,296,203,198,16126,224,970,374,3805,440,307,163,888,237,551,21,20.2,2.3,2.8,0.8,19.7,2.6,9.6,1.3,7.4,1.3,15.6,0.2,23.4,0.1,16.4,1.1,5.6,1.3,0.4,0.4,27.4,0.4,3.9,1.5,15.6,1.8,1.4,0.7,4.0,1.1,0.9,0.0,0.3621,0.1457,0.3388,0.4276,0.412,1.6862,0.2367,0.1718,0.6962,0.5581,0.5304,0.315,2.2715,0.3675,0.6354,0.6354,0.6354,0.5921,0.6892,0.3198,0.2491,0.1091,1.9593,0.2358,6.5524,0.2663,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42938,2425,385,11496,525,1864,0,636,213,59,71,0,30,1930,598,141,183,10.9,1.7,19.6,0.9,3.2,0.0,1.1,0.4,0.1,0.1,0.0,0.1,3.3,1.0,0.2,0.3
-24,Maryland,MD,24019,Dorchester County,24019,"Dorchester County, Maryland",540.764325250296,32557,0,16400,60,13216,446,8220,804,870,231,4161,423,2855,394,1690,378,7145,71,6852,45,5486,454,1284,217,509,191,12584,137,783,177,1164,278,84,53,1319,225,539,10,25.6,2.5,5.5,1.4,31.5,3.0,12.2,1.7,5.2,1.2,21.9,0.2,21.0,0.1,17.0,1.4,9.8,1.6,1.7,0.6,38.7,0.4,4.8,1.1,7.1,1.7,0.7,0.3,10.0,1.7,1.7,0.0,0.6163,0.6583,0.9625,0.6141,0.1798,3.031,0.6809,0.727,0.3659,0.6134,0.9395,0.7369,3.3827,0.9513,0.7655,0.7655,0.7655,0.6694,0.3621,0.0948,0.9205,0.4003,2.4471,0.4766,9.6263,0.7824,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,3,29476,1867,225,8327,337,1992,0,438,27,4,6,0,28,1658,375,165,114,14.1,1.5,25.6,1.0,6.1,0.0,1.3,0.1,0.0,0.1,0.0,0.1,5.1,1.2,0.5,0.3
-04,Arizona,AZ,04021,Pinal County,04021,"Pinal County, Arizona",5366.668332579862,433338,0,175474,161,151490,1024,82155,4274,11752,1073,34489,1586,34951,1704,39591,2493,89957,51,95425,0,66624,2363,8205,699,11376,1059,195761,590,3842,614,30426,1182,6244,626,5354,551,20772,451,20.0,1.0,6.4,0.6,22.8,1.0,11.5,0.6,9.6,0.6,20.8,0.1,22.0,0.0,16.1,0.6,5.4,0.5,2.8,0.3,45.2,0.1,2.2,0.3,17.3,0.7,4.1,0.4,3.5,0.4,4.8,0.1,0.3497,0.7919,0.6007,0.5695,0.5927,2.9045,0.6347,0.6459,0.5014,0.5301,0.4922,0.8438,3.0134,0.8374,0.833,0.833,0.833,0.3853,0.7404,0.8801,0.1833,0.8085,2.9976,0.7521,9.7485,0.797,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,286463,14138,978,18929,745,135346,0,6423,467,16638,633,1462,162,15604,1077,1359,491,9.3,0.6,4.4,0.2,31.2,0.0,1.5,0.1,3.8,0.1,0.3,0.1,3.6,0.2,0.3,0.1
-06,California,CA,06007,Butte County,06007,"Butte County, California",1636.488965591808,213605,0,93069,80,83319,903,58898,2671,7344,822,26926,1292,13468,864,13966,1165,38852,40,43011,0,34705,1497,4138,450,5128,665,66604,596,8319,748,10285,710,3146,472,5063,483,6182,91,28.2,1.3,7.1,0.8,32.3,1.5,9.7,0.6,6.6,0.6,18.2,0.1,20.1,0.0,16.4,0.7,5.0,0.5,2.5,0.3,31.2,0.3,8.9,0.8,11.1,0.8,3.8,0.5,6.1,0.6,2.9,0.0,0.7245,0.8546,0.9714,0.4375,0.3303,3.3183,0.7706,0.3793,0.2698,0.5581,0.4082,0.8244,2.4398,0.4843,0.6806,0.6806,0.6806,0.8435,0.5409,0.8587,0.6083,0.6507,3.5021,0.9437,9.9408,0.8225,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,210449,8412,667,3695,267,38361,0,10818,566,1514,256,605,97,10992,781,619,467,10.1,0.8,1.7,0.1,18.0,0.0,5.1,0.3,0.7,0.1,0.3,0.1,5.1,0.4,0.3,0.2
diff --git a/python/tests/data/cdc_svi_county/test_output_cdc_svi_county_by_age.csv b/python/tests/data/cdc_svi_county/test_output_cdc_svi_county_by_age.csv
deleted file mode 100644
index 29eb06ab75..0000000000
--- a/python/tests/data/cdc_svi_county/test_output_cdc_svi_county_by_age.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-county_fips,county_name,age,svi
-01001,Autauga County,All,0.27
-24019,Dorchester County,All,0.78
-04021,Pinal County,All,0.80
-06007,Butte County,All,0.82
diff --git a/python/tests/datasources/test_cdc_svi_county.py b/python/tests/datasources/test_cdc_svi_county.py
deleted file mode 100644
index e421616aa1..0000000000
--- a/python/tests/datasources/test_cdc_svi_county.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from unittest import mock
-import os
-
-import pandas as pd
-from pandas._testing import assert_frame_equal
-from datasources.cdc_svi_county import CDCSviCounty, format_svi
-
-# insert unit tests
-
-
-def test_format_svi():
- assert format_svi(0.4354) == 0.44
-
-
-# Current working directory.
-THIS_DIR = os.path.dirname(os.path.abspath(__file__))
-TEST_DIR = os.path.join(THIS_DIR, os.pardir, "data", "cdc_svi_county")
-REAL_DIR = os.path.abspath('data/cdc_svi_county')
-
-
-GOLDEN_DATA = os.path.join(TEST_DIR, 'test_output_cdc_svi_county_by_age.csv')
-
-
-def get_svi_as_df():
- return pd.read_csv(os.path.join(TEST_DIR, 'cdc_svi_county_test.csv'), dtype={"FIPS": str})
-
-
-@mock.patch(
- 'ingestion.gcs_to_bq_util.load_csv_as_df_from_data_dir',
- return_value=get_svi_as_df(),
-)
-@mock.patch('ingestion.gcs_to_bq_util.add_df_to_bq', return_value=None)
-def testWriteToBq(mock_bq: mock.MagicMock, mock_csv: mock.MagicMock):
- cdcSviCounty = CDCSviCounty()
-
- kwargs = {
- 'filename': 'test_file.csv',
- 'metadata_table_id': 'test_metadata',
- 'table_name': 'output_table',
- }
-
- cdcSviCounty.write_to_bq('dataset', 'gcs_bucket', **kwargs)
- assert mock_bq.call_count == 1
- assert mock_csv.call_count == 1
-
- expected_df = pd.read_csv(
- GOLDEN_DATA,
- dtype={
- 'county_fips': str,
- },
- )
- assert_frame_equal(mock_bq.call_args_list[0].args[0], expected_df, check_like=True)
diff --git a/requirements/tests.txt b/requirements/tests.txt
index 196227264e..8503babc42 100644
--- a/requirements/tests.txt
+++ b/requirements/tests.txt
@@ -22,6 +22,8 @@ click==8.1.7
# via flask
dill==0.3.8
# via pylint
+et-xmlfile==1.1.0
+ # via openpyxl
flask==3.0.3
# via
# -r ../data_server/requirements.in
@@ -96,7 +98,10 @@ mypy-extensions==0.4.3
# via typing-inspect
numpy==1.26.4
# via pandas
-openpyxl==3.1.2
+openpyxl==3.1.3
+ # via
+ # -r ../python/tests/../ingestion/requirements.in
+ # -r tests.in
packaging==20.4
# via
# gunicorn
@@ -143,7 +148,7 @@ pytz==2020.1
# pandas
pyyaml==5.4
# via libcst
-requests==2.32.2
+requests==2.32.3
# via
# -r ../python/tests/../ingestion/requirements.in
# google-api-core
diff --git a/run_ingestion/requirements.txt b/run_ingestion/requirements.txt
index 2a2e71695f..3a3991d64f 100644
--- a/run_ingestion/requirements.txt
+++ b/run_ingestion/requirements.txt
@@ -83,7 +83,7 @@ mypy-extensions==0.4.3
# via typing-inspect
numpy==1.26.4
# via pandas
-openpyxl==3.1.2
+openpyxl==3.1.3
# via
# -r ../python/ingestion/requirements.in
# -r requirements.in
@@ -118,7 +118,7 @@ pytz==2020.1
# pandas
pyyaml==5.4
# via libcst
-requests==2.32.2
+requests==2.32.3
# via
# -r ../python/ingestion/requirements.in
# google-api-core