From d32d40eff96e46d18dd516d510c1af20a64f0580 Mon Sep 17 00:00:00 2001 From: idelcano Date: Fri, 11 Mar 2022 23:05:36 +0100 Subject: [PATCH 1/8] added 44 extra periods --- i18n/en.pot | 8 ++++---- i18n/es.po | 6 +++--- src/data/Dhis2ConfigRepository.ts | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index 73d40913..a55fa41f 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2022-01-10T08:43:46.954Z\n" -"PO-Revision-Date: 2022-01-10T08:43:46.954Z\n" +"POT-Creation-Date: 2022-03-11T21:26:56.913Z\n" +"PO-Revision-Date: 2022-03-11T21:26:56.913Z\n" msgid "" msgstr "" @@ -77,10 +77,10 @@ msgstr "" msgid "NHWA Data Approval Status Report" msgstr "" -msgid "Data set" +msgid "Period" msgstr "" -msgid "Period" +msgid "Data set" msgstr "" msgid "Attribute" diff --git a/i18n/es.po b/i18n/es.po index a81ba594..032b3eb5 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-01-10T08:43:46.954Z\n" +"POT-Creation-Date: 2022-03-11T21:26:56.913Z\n" "PO-Revision-Date: 2018-10-25T09:02:35.143Z\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -77,10 +77,10 @@ msgstr "" msgid "NHWA Data Approval Status Report" msgstr "" -msgid "Data set" +msgid "Period" msgstr "" -msgid "Period" +msgid "Data set" msgstr "" msgid "Attribute" diff --git a/src/data/Dhis2ConfigRepository.ts b/src/data/Dhis2ConfigRepository.ts index 33a3dab0..88ffdc5e 100644 --- a/src/data/Dhis2ConfigRepository.ts +++ b/src/data/Dhis2ConfigRepository.ts @@ -46,7 +46,7 @@ export class Dhis2ConfigRepository implements ConfigRepository { pairedDataElementsByDataSet: pairedDataElements, sections: keyById(sections), sectionsByDataSet, - years: _.range(currentYear - 10, currentYear + 1).map(n => n.toString()), + years: _.range(currentYear - 54, currentYear + 1).map(n => n.toString()), approvalWorkflow: dataApprovalWorkflows, }; } From f59559f9a1a9a143bc95e83bf2cd65bfe036f59b Mon Sep 17 00:00:00 2001 From: idelcano Date: Fri, 11 Mar 2022 23:22:40 +0100 Subject: [PATCH 2/8] modify start date to 1970 --- src/data/Dhis2ConfigRepository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/Dhis2ConfigRepository.ts b/src/data/Dhis2ConfigRepository.ts index 88ffdc5e..fdec0a1b 100644 --- a/src/data/Dhis2ConfigRepository.ts +++ b/src/data/Dhis2ConfigRepository.ts @@ -46,7 +46,7 @@ export class Dhis2ConfigRepository implements ConfigRepository { pairedDataElementsByDataSet: pairedDataElements, sections: keyById(sections), sectionsByDataSet, - years: _.range(currentYear - 54, currentYear + 1).map(n => n.toString()), + years: _.range(1970, currentYear + 1).map(n => n.toString()), approvalWorkflow: dataApprovalWorkflows, }; } From 20eac6d13d6d6176cac36399383f416d2f2af8b2 Mon Sep 17 00:00:00 2001 From: idelcano Date: Tue, 15 Mar 2022 21:39:18 +0100 Subject: [PATCH 3/8] split query in two queries to avoid 500 error --- src/data/NHWADataCommentsDefaultRepository.ts | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/data/NHWADataCommentsDefaultRepository.ts b/src/data/NHWADataCommentsDefaultRepository.ts index 5c627ff5..c75e8e42 100644 --- a/src/data/NHWADataCommentsDefaultRepository.ts +++ b/src/data/NHWADataCommentsDefaultRepository.ts @@ -63,12 +63,12 @@ export class NHWADataCommentsDefaultRepository implements NHWADataCommentsReposi .join("-") || "-"; const sqlViews = new Dhis2SqlViews(this.api); - const { pager, rows } = await sqlViews + const { pager, rows } = _.merge(await sqlViews .query( config.dataCommentsSqlView.id, { orgUnitIds: sqlViewJoinIds(orgUnitIds), - periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years : periods), + periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years.slice(config.years.length/2, config.years.length) : periods), dataSetIds: sqlViewJoinIds(dataSetIds2), sectionIds: sqlViewJoinIds(sectionIds), orderByColumn: fieldMapping[sorting.field], @@ -77,8 +77,23 @@ export class NHWADataCommentsDefaultRepository implements NHWADataCommentsReposi }, paging ) - .getData(); - + .getData(), + await sqlViews + .query( + config.dataCommentsSqlView.id, + { + orgUnitIds: sqlViewJoinIds(orgUnitIds), + periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years.slice(0, config.years.length-(config.years.length/2)) : periods), + dataSetIds: sqlViewJoinIds(dataSetIds2), + sectionIds: sqlViewJoinIds(sectionIds), + orderByColumn: fieldMapping[sorting.field], + orderByDirection: sorting.direction, + commentPairs, + }, + paging + ) + .getData()); + // A data value is not associated to a specific data set, but we can still map it // through the data element (1 data value -> 1 data element -> N data sets). From 9f96569c28c2f1f5061ae549c589e878d4a61006 Mon Sep 17 00:00:00 2001 From: idelcano Date: Thu, 21 Jul 2022 18:34:46 +0200 Subject: [PATCH 4/8] wip --- src/data/Dhis2ConfigRepository.ts | 2 +- src/data/NHWADataCommentsDefaultRepository.ts | 38 +++++++++--------- .../data-comments-list/DataCommentsList.tsx | 40 +++++++++++++++++-- 3 files changed, 57 insertions(+), 23 deletions(-) diff --git a/src/data/Dhis2ConfigRepository.ts b/src/data/Dhis2ConfigRepository.ts index fdec0a1b..33a3dab0 100644 --- a/src/data/Dhis2ConfigRepository.ts +++ b/src/data/Dhis2ConfigRepository.ts @@ -46,7 +46,7 @@ export class Dhis2ConfigRepository implements ConfigRepository { pairedDataElementsByDataSet: pairedDataElements, sections: keyById(sections), sectionsByDataSet, - years: _.range(1970, currentYear + 1).map(n => n.toString()), + years: _.range(currentYear - 10, currentYear + 1).map(n => n.toString()), approvalWorkflow: dataApprovalWorkflows, }; } diff --git a/src/data/NHWADataCommentsDefaultRepository.ts b/src/data/NHWADataCommentsDefaultRepository.ts index c75e8e42..5be1d72b 100644 --- a/src/data/NHWADataCommentsDefaultRepository.ts +++ b/src/data/NHWADataCommentsDefaultRepository.ts @@ -63,27 +63,14 @@ export class NHWADataCommentsDefaultRepository implements NHWADataCommentsReposi .join("-") || "-"; const sqlViews = new Dhis2SqlViews(this.api); - const { pager, rows } = _.merge(await sqlViews - .query( - config.dataCommentsSqlView.id, - { - orgUnitIds: sqlViewJoinIds(orgUnitIds), - periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years.slice(config.years.length/2, config.years.length) : periods), - dataSetIds: sqlViewJoinIds(dataSetIds2), - sectionIds: sqlViewJoinIds(sectionIds), - orderByColumn: fieldMapping[sorting.field], - orderByDirection: sorting.direction, - commentPairs, - }, - paging - ) - .getData(), + const { pager, rows } = _.merge( await sqlViews .query( config.dataCommentsSqlView.id, { orgUnitIds: sqlViewJoinIds(orgUnitIds), - periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years.slice(0, config.years.length-(config.years.length/2)) : periods), + periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years : periods), + //periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years.slice(config.years.length/2, config.years.length) : periods), dataSetIds: sqlViewJoinIds(dataSetIds2), sectionIds: sqlViewJoinIds(sectionIds), orderByColumn: fieldMapping[sorting.field], @@ -92,13 +79,26 @@ export class NHWADataCommentsDefaultRepository implements NHWADataCommentsReposi }, paging ) - .getData()); - + .getData() + ); + // A data value is not associated to a specific data set, but we can still map it // through the data element (1 data value -> 1 data element -> N data sets). const dataValues: Array = rows.map( - (dv): DataCommentsItem => ({ + (dv: { + period: string; + orgunit: any; + datasetname: any; + dataelementid: any; + dataelementname: any; + section: any; + cocname: any; + value: any; + comment: any; + lastupdated: string | number | Date; + storedby: any; + }): DataCommentsItem => ({ period: dv.period.split("-")[0] ?? "", orgUnit: { name: dv.orgunit }, dataSet: { name: dv.datasetname }, diff --git a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx index abaeeb62..f3c6a704 100644 --- a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx +++ b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx @@ -6,6 +6,7 @@ import { TableSorting, } from "@eyeseetea/d2-ui-components"; import StorageIcon from "@material-ui/icons/Storage"; +import RestartAltIcon from "@material-ui/icons/Storage"; import _ from "lodash"; import React from "react"; import { sortByName } from "../../../../domain/common/entities/Base"; @@ -23,13 +24,15 @@ import { DataValuesFilter } from "./Filters"; import { FiltersBox } from "./FiltersBox"; export const DataCommentsList: React.FC = React.memo(() => { + let oldYears = false; const { compositionRoot, config } = useAppContext(); const [filters, setFilters] = React.useState(() => getEmptyDataValuesFilter(config)); const baseConfig = React.useMemo(getBaseListConfig, []); const [sorting, setSorting] = React.useState>(); - const getRows = React.useMemo( () => async (paging: TablePagination, sorting: TableSorting) => { + switchYears(oldYears, config, filters); + const { pager, objects } = await compositionRoot.dataComments.get({ config, paging: { page: paging.page, pageSize: paging.pageSize }, @@ -39,6 +42,7 @@ export const DataCommentsList: React.FC = React.memo(() => { setSorting(sorting); return { pager, objects: getDataCommentsViews(config, objects) }; }, + // eslint-disable-next-line [config, compositionRoot, filters] ); @@ -52,7 +56,7 @@ export const DataCommentsList: React.FC = React.memo(() => { icon: , onClick: async () => { if (!sorting) return; - // FUTURE: create a single use case that performs the get+saveCSV + const { objects: dataValues } = await compositionRoot.dataComments.get({ config, paging: { page: 1, pageSize: 100000 }, @@ -63,13 +67,43 @@ export const DataCommentsList: React.FC = React.memo(() => { }, }; + const allYearsToggle: TableGlobalAction = { + name: "allyears", + text: "Switch Years", + icon: , + onClick: async () => { + if (!sorting) return; + oldYears = !oldYears; + switchYears(oldYears, config, filters); + + const { pager, objects } = await compositionRoot.dataComments.get({ + config, + paging: { page: 1, pageSize: 20 }, + sorting: getSortingFromTableSorting(sorting), + ...getUseCaseOptions(filters), + }); + setSorting(sorting); + setFilters(filters); + + return { pager, objects: getDataCommentsViews(config, objects) }; + }, + }; return ( - {...tableProps} globalActions={[downloadCsv]}> + {...tableProps} globalActions={[downloadCsv, allYearsToggle]}> ); }); +function switchYears(oldYears: boolean, config: Config, filters: DataValuesFilter) { + const currentYear = new Date().getFullYear(); + const years = oldYears + ? _.range(currentYear - 40, currentYear - 10).map(n => n.toString()) + : _.range(currentYear - 10, currentYear + 1).map(n => n.toString()); + config.years = years; + filters.periods = config.years.slice(config.years.length, config.years.length) ?? filters.periods; +} + function getUseCaseOptions(filter: DataValuesFilter) { return { ...filter, From f44309fe523b5fcef87f601fc30ce0600d53ad58 Mon Sep 17 00:00:00 2001 From: idelcano Date: Thu, 21 Jul 2022 19:50:23 +0200 Subject: [PATCH 5/8] added setfilter --- .../data-comments-list/DataCommentsList.tsx | 25 +++++-------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx index f3c6a704..50fdf818 100644 --- a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx +++ b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx @@ -23,8 +23,8 @@ import { DataCommentsViewModel, getDataCommentsViews } from "../DataCommentsView import { DataValuesFilter } from "./Filters"; import { FiltersBox } from "./FiltersBox"; -export const DataCommentsList: React.FC = React.memo(() => { - let oldYears = false; +export const DataCommentsList: React.FC = () => { + const [oldYears, setOldYears] = React.useState(false); const { compositionRoot, config } = useAppContext(); const [filters, setFilters] = React.useState(() => getEmptyDataValuesFilter(config)); const baseConfig = React.useMemo(getBaseListConfig, []); @@ -32,13 +32,13 @@ export const DataCommentsList: React.FC = React.memo(() => { const getRows = React.useMemo( () => async (paging: TablePagination, sorting: TableSorting) => { switchYears(oldYears, config, filters); - const { pager, objects } = await compositionRoot.dataComments.get({ config, paging: { page: paging.page, pageSize: paging.pageSize }, sorting: getSortingFromTableSorting(sorting), ...getUseCaseOptions(filters), }); + setFilters(filters); setSorting(sorting); return { pager, objects: getDataCommentsViews(config, objects) }; }, @@ -71,21 +71,8 @@ export const DataCommentsList: React.FC = React.memo(() => { name: "allyears", text: "Switch Years", icon: , - onClick: async () => { - if (!sorting) return; - oldYears = !oldYears; - switchYears(oldYears, config, filters); - - const { pager, objects } = await compositionRoot.dataComments.get({ - config, - paging: { page: 1, pageSize: 20 }, - sorting: getSortingFromTableSorting(sorting), - ...getUseCaseOptions(filters), - }); - setSorting(sorting); - setFilters(filters); - - return { pager, objects: getDataCommentsViews(config, objects) }; + onClick: () => { + setOldYears(!oldYears); }, }; return ( @@ -93,7 +80,7 @@ export const DataCommentsList: React.FC = React.memo(() => { ); -}); +}; function switchYears(oldYears: boolean, config: Config, filters: DataValuesFilter) { const currentYear = new Date().getFullYear(); From d8da21b613c1934921cbf66bf7d061ce3a7a0f22 Mon Sep 17 00:00:00 2001 From: idelcano Date: Thu, 28 Jul 2022 07:28:59 +0200 Subject: [PATCH 6/8] when you switch years, and then click on periods or reorder something the list is updated --- .../data-comments-list/DataCommentsList.tsx | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx index 50fdf818..e7bff22e 100644 --- a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx +++ b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx @@ -31,7 +31,6 @@ export const DataCommentsList: React.FC = () => { const [sorting, setSorting] = React.useState>(); const getRows = React.useMemo( () => async (paging: TablePagination, sorting: TableSorting) => { - switchYears(oldYears, config, filters); const { pager, objects } = await compositionRoot.dataComments.get({ config, paging: { page: paging.page, pageSize: paging.pageSize }, @@ -71,8 +70,16 @@ export const DataCommentsList: React.FC = () => { name: "allyears", text: "Switch Years", icon: , - onClick: () => { - setOldYears(!oldYears); + onClick: async () => { + setOldYears(oldYears => !oldYears); + switchYears(!oldYears, config, filters); + compositionRoot.dataComments.get({ + config, + paging: { page: 0, pageSize: 20 }, + sorting: getDefaultSortingFromTableSorting(), + ...getUseCaseOptions(filters), + }); + filterOptions.periods = filters.periods; }, }; return ( @@ -105,6 +112,13 @@ function getSortingFromTableSorting(sorting: TableSorting }; } +function getDefaultSortingFromTableSorting(): Sorting { + return { + field: "period", + direction: "asc", + }; +} + function getBaseListConfig(): TableConfig { const paginationOptions: PaginationOptions = { pageSizeOptions: [10, 20, 50], From 1fd6b681e7c6e6d186d749c4b4438f17aa1e247c Mon Sep 17 00:00:00 2001 From: Arnau Sanchez Date: Mon, 22 Aug 2022 12:48:16 +0200 Subject: [PATCH 7/8] Refactor switch years --- src/data/NHWADataCommentsDefaultRepository.ts | 2 +- .../usecases/GetDataValuesUseCase.ts | 2 +- .../data-comments-list/DataCommentsList.tsx | 65 ++++++------------- 3 files changed, 22 insertions(+), 47 deletions(-) diff --git a/src/data/NHWADataCommentsDefaultRepository.ts b/src/data/NHWADataCommentsDefaultRepository.ts index 5be1d72b..0d8ad482 100644 --- a/src/data/NHWADataCommentsDefaultRepository.ts +++ b/src/data/NHWADataCommentsDefaultRepository.ts @@ -69,7 +69,7 @@ export class NHWADataCommentsDefaultRepository implements NHWADataCommentsReposi config.dataCommentsSqlView.id, { orgUnitIds: sqlViewJoinIds(orgUnitIds), - periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years : periods), + periods: sqlViewJoinIds(periods), //periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years.slice(config.years.length/2, config.years.length) : periods), dataSetIds: sqlViewJoinIds(dataSetIds2), sectionIds: sqlViewJoinIds(sectionIds), diff --git a/src/domain/nhwa-comments/usecases/GetDataValuesUseCase.ts b/src/domain/nhwa-comments/usecases/GetDataValuesUseCase.ts index 171d77f1..5a1c31c0 100644 --- a/src/domain/nhwa-comments/usecases/GetDataValuesUseCase.ts +++ b/src/domain/nhwa-comments/usecases/GetDataValuesUseCase.ts @@ -5,7 +5,7 @@ import { import { DataCommentsItem } from "../entities/DataCommentsItem"; import { PaginatedObjects } from "../../common/entities/PaginatedObjects"; -type GetDataValuesUseCaseOptions = NHWADataCommentsRepositoryGetOptions; +export type GetDataValuesUseCaseOptions = NHWADataCommentsRepositoryGetOptions; export class GetDataValuesUseCase { constructor(private dataValueRepository: NHWADataCommentsRepository) {} diff --git a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx index e7bff22e..6c9422fc 100644 --- a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx +++ b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx @@ -22,10 +22,17 @@ import { useSnackbarOnError } from "../../../utils/snackbar"; import { DataCommentsViewModel, getDataCommentsViews } from "../DataCommentsViewModel"; import { DataValuesFilter } from "./Filters"; import { FiltersBox } from "./FiltersBox"; - export const DataCommentsList: React.FC = () => { const [oldYears, setOldYears] = React.useState(false); const { compositionRoot, config } = useAppContext(); + + const selectablePeriods = React.useMemo(() => { + const currentYear = new Date().getFullYear(); + return oldYears + ? _.range(currentYear - 40, currentYear - 10).map(n => n.toString()) + : _.range(currentYear - 10, currentYear + 1).map(n => n.toString()); + }, [oldYears]); + const [filters, setFilters] = React.useState(() => getEmptyDataValuesFilter(config)); const baseConfig = React.useMemo(getBaseListConfig, []); const [sorting, setSorting] = React.useState>(); @@ -35,51 +42,42 @@ export const DataCommentsList: React.FC = () => { config, paging: { page: paging.page, pageSize: paging.pageSize }, sorting: getSortingFromTableSorting(sorting), - ...getUseCaseOptions(filters), + ...getUseCaseOptions(filters, selectablePeriods), }); setFilters(filters); setSorting(sorting); return { pager, objects: getDataCommentsViews(config, objects) }; }, - // eslint-disable-next-line - [config, compositionRoot, filters] + [config, compositionRoot, filters, selectablePeriods] ); - const getRowsWithSnackbarOrError = useSnackbarOnError(getRows); const tableProps = useObjectsTable(baseConfig, getRowsWithSnackbarOrError); - const filterOptions = React.useMemo(() => getFilterOptions(config, filters), [config, filters]); - + const filterOptions = React.useMemo( + () => getFilterOptions(config, filters, selectablePeriods), + [config, filters, selectablePeriods] + ); const downloadCsv: TableGlobalAction = { name: "downloadCsv", text: "Download CSV", icon: , onClick: async () => { if (!sorting) return; - const { objects: dataValues } = await compositionRoot.dataComments.get({ config, paging: { page: 1, pageSize: 100000 }, sorting: getSortingFromTableSorting(sorting), - ...getUseCaseOptions(filters), + ...getUseCaseOptions(filters, selectablePeriods), }); compositionRoot.dataComments.save("data-values.csv", dataValues); }, }; - const allYearsToggle: TableGlobalAction = { name: "allyears", text: "Switch Years", icon: , onClick: async () => { setOldYears(oldYears => !oldYears); - switchYears(!oldYears, config, filters); - compositionRoot.dataComments.get({ - config, - paging: { page: 0, pageSize: 20 }, - sorting: getDefaultSortingFromTableSorting(), - ...getUseCaseOptions(filters), - }); - filterOptions.periods = filters.periods; + setFilters(currentFilters => ({ ...currentFilters, periods: [] })); }, }; return ( @@ -89,47 +87,28 @@ export const DataCommentsList: React.FC = () => { ); }; -function switchYears(oldYears: boolean, config: Config, filters: DataValuesFilter) { - const currentYear = new Date().getFullYear(); - const years = oldYears - ? _.range(currentYear - 40, currentYear - 10).map(n => n.toString()) - : _.range(currentYear - 10, currentYear + 1).map(n => n.toString()); - config.years = years; - filters.periods = config.years.slice(config.years.length, config.years.length) ?? filters.periods; -} - -function getUseCaseOptions(filter: DataValuesFilter) { +function getUseCaseOptions(filter: DataValuesFilter, selectablePeriods: string[]) { return { ...filter, + periods: _.isEmpty(filter.periods) ? selectablePeriods : filter.periods, orgUnitIds: getOrgUnitIdsFromPaths(filter.orgUnitPaths), }; } - function getSortingFromTableSorting(sorting: TableSorting): Sorting { return { field: sorting.field === "id" ? "period" : sorting.field, direction: sorting.order, }; } - -function getDefaultSortingFromTableSorting(): Sorting { - return { - field: "period", - direction: "asc", - }; -} - function getBaseListConfig(): TableConfig { const paginationOptions: PaginationOptions = { pageSizeOptions: [10, 20, 50], pageSizeInitialValue: 10, }; - const initialSorting: TableSorting = { field: "dataSet" as const, order: "asc" as const, }; - const columns: TableColumn[] = [ { name: "dataSet", text: i18n.t("Data set"), sortable: true }, { name: "period", text: i18n.t("Period"), sortable: true }, @@ -142,11 +121,9 @@ function getBaseListConfig(): TableConfig { { name: "lastUpdated", text: i18n.t("Last updated"), sortable: true, hidden: true }, { name: "storedBy", text: i18n.t("Stored by"), sortable: true, hidden: true }, ]; - return { columns, initialSorting, paginationOptions }; } - -function getFilterOptions(config: Config, filters: DataValuesFilter) { +function getFilterOptions(config: Config, filters: DataValuesFilter, selectablePeriods: string[]) { const { dataSetIds } = filters; const sections = _(config.sectionsByDataSet) .at(_.isEmpty(dataSetIds) ? _.keys(config.sectionsByDataSet) : dataSetIds) @@ -154,14 +131,12 @@ function getFilterOptions(config: Config, filters: DataValuesFilter) { .compact() .uniqBy(section => section.id) .value(); - return { - periods: config.years, + periods: selectablePeriods, dataSets: sortByName(_.values(config.dataSets)), sections: sortByName(sections), }; } - function getEmptyDataValuesFilter(config: Config): DataValuesFilter { return { orgUnitPaths: getMainUserPaths(config), From d7be958d8b901a313b3613fecb98a7446b92189f Mon Sep 17 00:00:00 2001 From: idelcano Date: Tue, 23 Aug 2022 10:55:28 +0200 Subject: [PATCH 8/8] fix typo --- i18n/en.pot | 10 ++++++++-- i18n/es.po | 8 +++++++- src/data/NHWADataCommentsDefaultRepository.ts | 1 - .../data-comments-list/DataCommentsList.tsx | 10 +++++----- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index a55fa41f..1b004852 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2022-03-11T21:26:56.913Z\n" -"PO-Revision-Date: 2022-03-11T21:26:56.913Z\n" +"POT-Creation-Date: 2022-08-23T08:55:03.041Z\n" +"PO-Revision-Date: 2022-08-23T08:55:03.041Z\n" msgid "" msgstr "" @@ -128,6 +128,12 @@ msgstr "" msgid "NHWA Comments Report" msgstr "" +msgid "Download CSV" +msgstr "" + +msgid "Switch Periods" +msgstr "" + msgid "Section" msgstr "" diff --git a/i18n/es.po b/i18n/es.po index 032b3eb5..5d178801 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-03-11T21:26:56.913Z\n" +"POT-Creation-Date: 2022-08-23T08:55:03.041Z\n" "PO-Revision-Date: 2018-10-25T09:02:35.143Z\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -128,6 +128,12 @@ msgstr "" msgid "NHWA Comments Report" msgstr "" +msgid "Download CSV" +msgstr "" + +msgid "Switch Periods" +msgstr "" + msgid "Section" msgstr "" diff --git a/src/data/NHWADataCommentsDefaultRepository.ts b/src/data/NHWADataCommentsDefaultRepository.ts index 0d8ad482..2e63c8a0 100644 --- a/src/data/NHWADataCommentsDefaultRepository.ts +++ b/src/data/NHWADataCommentsDefaultRepository.ts @@ -70,7 +70,6 @@ export class NHWADataCommentsDefaultRepository implements NHWADataCommentsReposi { orgUnitIds: sqlViewJoinIds(orgUnitIds), periods: sqlViewJoinIds(periods), - //periods: sqlViewJoinIds(_.isEmpty(periods) ? config.years.slice(config.years.length/2, config.years.length) : periods), dataSetIds: sqlViewJoinIds(dataSetIds2), sectionIds: sqlViewJoinIds(sectionIds), orderByColumn: fieldMapping[sorting.field], diff --git a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx index 6c9422fc..0f7d3e06 100644 --- a/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx +++ b/src/webapp/reports/nhwa-comments/data-comments-list/DataCommentsList.tsx @@ -58,7 +58,7 @@ export const DataCommentsList: React.FC = () => { ); const downloadCsv: TableGlobalAction = { name: "downloadCsv", - text: "Download CSV", + text: i18n.t("Download CSV"), icon: , onClick: async () => { if (!sorting) return; @@ -71,9 +71,9 @@ export const DataCommentsList: React.FC = () => { compositionRoot.dataComments.save("data-values.csv", dataValues); }, }; - const allYearsToggle: TableGlobalAction = { - name: "allyears", - text: "Switch Years", + const periodsToggle: TableGlobalAction = { + name: "switchPeriods", + text: i18n.t("Switch Periods"), icon: , onClick: async () => { setOldYears(oldYears => !oldYears); @@ -81,7 +81,7 @@ export const DataCommentsList: React.FC = () => { }, }; return ( - {...tableProps} globalActions={[downloadCsv, allYearsToggle]}> + {...tableProps} globalActions={[downloadCsv, periodsToggle]}> );