From c419c619296203591fa1625637632be752b5b1bf Mon Sep 17 00:00:00 2001 From: Alessandro Kreslin Date: Tue, 24 Mar 2026 15:37:55 -0400 Subject: [PATCH 1/2] display dataset size in table --- messages/en.json | 3 + messages/fr.json | 3 + .../Feed/components/DataQualitySummary.tsx | 23 +- .../Feed/components/PreviousDatasets.tsx | 280 ++++++++++++------ 4 files changed, 215 insertions(+), 94 deletions(-) diff --git a/messages/en.json b/messages/en.json index bb01951b..d0dafa4c 100644 --- a/messages/en.json +++ b/messages/en.json @@ -47,6 +47,7 @@ "errors": "errors", "noErrors": "No errors", "noWarnings": "No warnings", + "noInfoNotices": "No info notices", "warnings": "warnings", "infoNotices": "info notices" }, @@ -266,6 +267,8 @@ "datasetHistoryColumns": { "downloadedAt": "Downloaded At", "serviceDateRange": "Service Date Range", + "sizeZipped": "Size Zipped (MB)", + "sizeUnzipped": "Size Unzipped (MB)", "validationReport": "Validation Report", "actions": "Actions" }, diff --git a/messages/fr.json b/messages/fr.json index 64bcf3f6..f5f4b3c7 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -47,6 +47,7 @@ "errors": "errors", "noErrors": "No errors", "noWarnings": "No warnings", + "noInfoNotices": "Aucune notice d'information", "warnings": "warnings", "infoNotices": "info notices" }, @@ -266,6 +267,8 @@ "datasetHistoryColumns": { "downloadedAt": "Téléchargé le", "serviceDateRange": "Plage de dates de service", + "sizeZipped": "Taille compressée (Mo)", + "sizeUnzipped": "Taille décompressée (Mo)", "validationReport": "Rapport de validation", "actions": "Actions" }, diff --git a/src/app/screens/Feed/components/DataQualitySummary.tsx b/src/app/screens/Feed/components/DataQualitySummary.tsx index 8435adce..ecb9d653 100644 --- a/src/app/screens/Feed/components/DataQualitySummary.tsx +++ b/src/app/screens/Feed/components/DataQualitySummary.tsx @@ -112,16 +112,29 @@ export default async function DataQualitySummary({ } + icon={ + (latestDataset?.validation_report?.unique_info_count ?? 0) > + 0 ? ( + + ) : ( + + ) + } clickable component='a' href={latestDataset?.validation_report?.url_html} target='_blank' rel='noopener noreferrer nofollow' - label={`${ - latestDataset?.validation_report?.unique_info_count ?? '0' - } ${tCommon('feedback.infoNotices')}`} - color='primary' + label={ + (latestDataset?.validation_report?.unique_info_count ?? 0) > 0 + ? `${latestDataset?.validation_report?.unique_info_count} ${tCommon('feedback.infoNotices')}` + : tCommon('feedback.noInfoNotices') + } + color={ + (latestDataset?.validation_report?.unique_info_count ?? 0) > 0 + ? 'primary' + : 'success' + } variant='outlined' /> diff --git a/src/app/screens/Feed/components/PreviousDatasets.tsx b/src/app/screens/Feed/components/PreviousDatasets.tsx index f46c9079..e97ccd86 100644 --- a/src/app/screens/Feed/components/PreviousDatasets.tsx +++ b/src/app/screens/Feed/components/PreviousDatasets.tsx @@ -162,6 +162,22 @@ export default function PreviousDatasets({ > {t('datasetHistoryColumns.serviceDateRange')} + + {t('datasetHistoryColumns.sizeZipped')} + + + {t('datasetHistoryColumns.sizeUnzipped')} + )} + + + {dataset?.zipped_folder_size_mb != null + ? dataset.zipped_folder_size_mb + : '–'} + + + + + {dataset?.unzipped_folder_size_mb != null + ? dataset.unzipped_folder_size_mb + : '–'} + + {dataset.validation_report == null && ( @@ -224,106 +254,178 @@ export default function PreviousDatasets({ )} {dataset.validation_report != null && ( <> - - 0 ? ( - - ) : ( - - ) - } - label={ + 0 - ? `${ - dataset?.validation_report?.unique_error_count - } ${tCommon('feedback.errors')}` + ? `${dataset.validation_report.unique_error_count} ${tCommon('feedback.errors')}` : tCommon('feedback.noErrors') } - aria-label={ - dataset?.validation_report?.unique_error_count != - undefined && - dataset?.validation_report?.unique_error_count > 0 - ? `${dataset.validation_report.unique_error_count} ${tCommon('feedback.errors')} – ${t('datasetHistoryTooltip.viewReport')}` - : `${tCommon('feedback.noErrors')} – ${t('datasetHistoryTooltip.viewReport')}` - } - color={ - dataset?.validation_report?.unique_error_count != - undefined && - dataset?.validation_report?.unique_error_count > 0 - ? 'error' - : 'success' - } - variant='outlined' - /> - - 0 ? ( - - ) : ( - - ) - } - label={ - dataset?.validation_report?.unique_warning_count != - undefined && - dataset?.validation_report?.unique_warning_count > 0 - ? `${ + placement='top' + > + + 0 ? ( + + ) : ( + + ) + } + label={ + dataset?.validation_report?.unique_error_count != + undefined && + dataset?.validation_report?.unique_error_count > 0 + ? dataset.validation_report.unique_error_count + : undefined + } + aria-label={ + dataset?.validation_report?.unique_error_count != + undefined && + dataset?.validation_report?.unique_error_count > 0 + ? `${dataset.validation_report.unique_error_count} ${tCommon('feedback.errors')} – ${t('datasetHistoryTooltip.viewReport')}` + : `${tCommon('feedback.noErrors')} – ${t('datasetHistoryTooltip.viewReport')}` + } + color={ + dataset?.validation_report?.unique_error_count != + undefined && + dataset?.validation_report?.unique_error_count > 0 + ? 'error' + : 'success' + } + variant='outlined' + /> + + 0 - ? `${dataset.validation_report.unique_warning_count} ${tCommon('feedback.warnings')} – ${t('datasetHistoryTooltip.viewReport')}` - : `${tCommon('feedback.noWarnings')} – ${t('datasetHistoryTooltip.viewReport')}` + ? `${dataset.validation_report.unique_warning_count} ${tCommon('feedback.warnings')}` + : tCommon('feedback.noWarnings') } - color={ - dataset?.validation_report?.unique_warning_count != - undefined && - dataset?.validation_report?.unique_warning_count > 0 - ? 'warning' - : 'success' + placement='top' + > + + 0 ? ( + + ) : ( + + ) + } + label={ + dataset?.validation_report + ?.unique_warning_count != undefined && + dataset?.validation_report?.unique_warning_count > + 0 + ? dataset.validation_report.unique_warning_count + : undefined + } + aria-label={ + dataset?.validation_report + ?.unique_warning_count != undefined && + dataset?.validation_report?.unique_warning_count > + 0 + ? `${dataset.validation_report.unique_warning_count} ${tCommon('feedback.warnings')} – ${t('datasetHistoryTooltip.viewReport')}` + : `${tCommon('feedback.noWarnings')} – ${t('datasetHistoryTooltip.viewReport')}` + } + color={ + dataset?.validation_report + ?.unique_warning_count != undefined && + dataset?.validation_report?.unique_warning_count > + 0 + ? 'warning' + : 'success' + } + variant='outlined' + /> + + 0 + ? `${dataset?.validation_report?.unique_info_count} ${tCommon('feedback.infoNotices')}` + : tCommon('feedback.noInfoNotices') } - variant='outlined' - /> - } - label={`${ - dataset?.validation_report?.unique_info_count ?? '0' - } ${tCommon('feedback.infoNotices')}`} - aria-label={`${dataset?.validation_report?.unique_info_count ?? '0'} ${tCommon('feedback.infoNotices')} – ${t('datasetHistoryTooltip.viewReport')}`} - color='primary' - variant='outlined' - /> + placement='top' + > + 0 ? ( + + ) : ( + + ) + } + label={ + (dataset?.validation_report?.unique_info_count ?? + 0) > 0 + ? dataset?.validation_report?.unique_info_count + : undefined + } + aria-label={`${dataset?.validation_report?.unique_info_count ?? '0'} ${tCommon('feedback.infoNotices')} – ${t('datasetHistoryTooltip.viewReport')}`} + color={ + (dataset?.validation_report?.unique_info_count ?? + 0) > 0 + ? 'primary' + : 'success' + } + variant='outlined' + /> + )} From d1afc0a7c7174d702ccec61a791c27dfd3e671f2 Mon Sep 17 00:00:00 2001 From: Alessandro Kreslin Date: Wed, 25 Mar 2026 07:55:56 -0400 Subject: [PATCH 2/2] validation report null guard --- .../Feed/components/DataQualitySummary.tsx | 12 +++++----- .../Feed/components/PreviousDatasets.tsx | 24 ++++++++++++++----- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/app/screens/Feed/components/DataQualitySummary.tsx b/src/app/screens/Feed/components/DataQualitySummary.tsx index ecb9d653..c52892fd 100644 --- a/src/app/screens/Feed/components/DataQualitySummary.tsx +++ b/src/app/screens/Feed/components/DataQualitySummary.tsx @@ -42,9 +42,9 @@ export default async function DataQualitySummary({ <> ) } - clickable + clickable={Boolean(latestDataset?.validation_report?.url_html)} component='a' - href={latestDataset?.validation_report?.url_html} + href={latestDataset?.validation_report?.url_html ?? undefined} target='_blank' rel='noopener noreferrer nofollow' label={ diff --git a/src/app/screens/Feed/components/PreviousDatasets.tsx b/src/app/screens/Feed/components/PreviousDatasets.tsx index e97ccd86..2c4c5afb 100644 --- a/src/app/screens/Feed/components/PreviousDatasets.tsx +++ b/src/app/screens/Feed/components/PreviousDatasets.tsx @@ -266,8 +266,12 @@ export default function PreviousDatasets({ >