diff --git a/i18n/en.pot b/i18n/en.pot index 145206a8..76676005 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,6 +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: 2024-11-13T12:57:12.003Z\n" +"PO-Revision-Date: 2024-11-13T12:57:12.004Z\n" "POT-Creation-Date: 2024-11-13T08:29:01.348Z\n" "PO-Revision-Date: 2024-11-13T08:29:01.348Z\n" @@ -846,6 +848,12 @@ msgstr "MultiPolygon" msgid "GeometryCollection" msgstr "GeometryCollection" +msgid "Section" +msgstr "Section" + +msgid "Section Multi-org" +msgstr "Section Multi-org" + msgid "Aggregation type" msgstr "Aggregation type" @@ -858,6 +866,9 @@ msgstr "Form name" msgid "Domain type" msgstr "Domain type" +msgid "Form type" +msgstr "Form type" + msgid "Sharing" msgstr "Sharing" @@ -897,6 +908,9 @@ msgstr "Created successfully" msgid "Required" msgstr "Required" +msgid "Period type" +msgstr "Period type" + msgid "Basic information" msgstr "Basic information" @@ -961,6 +975,48 @@ msgstr "Filter selected categories" msgid "At least one category is required" msgstr "At least one category is required" +msgid "Set up the basic information for this category option group set." +msgstr "Set up the basic information for this category option group set." + +msgid "Explain the purpose of this category option group set." +msgstr "Explain the purpose of this category option group set." + +msgid "" +"Choose how this category option group set will be used to capture and " +"analyze" +msgstr "" +"Choose how this category option group set will be used to capture and " +"analyze" + +msgid "" +"Category option group set will be available to the analytics as another " +"dimension" +msgstr "" +"Category option group set will be available to the analytics as another " +"dimension" + +msgid "Category option Groups" +msgstr "Category option Groups" + +msgid "" +"Choose the category option groups to include in this category option group " +"set." +msgstr "" +"Choose the category option groups to include in this category option group " +"set." + +msgid "Available category option groups" +msgstr "Available category option groups" + +msgid "Selected category option groups" +msgstr "Selected category option groups" + +msgid "Filter available category option groups" +msgstr "Filter available category option groups" + +msgid "Filter selected category option groups" +msgstr "Filter selected category option groups" + msgid "Set up the basic information for this category option group." msgstr "Set up the basic information for this category option group." @@ -1179,12 +1235,6 @@ msgstr "Set up the organisation unit location." msgid "Reference assignment" msgstr "Reference assignment" -msgid "Longitude" -msgstr "Longitude" - -msgid "Reference assignment" -msgstr "Reference assignment" - msgid "Assign the organisation unit to related objects." msgstr "Assign the organisation unit to related objects." diff --git a/src/components/sectionList/filters/FilterWrapper.tsx b/src/components/sectionList/filters/FilterWrapper.tsx index 1c79c88c..c0fc047b 100644 --- a/src/components/sectionList/filters/FilterWrapper.tsx +++ b/src/components/sectionList/filters/FilterWrapper.tsx @@ -2,7 +2,7 @@ import i18n from '@dhis2/d2-i18n' import { Button } from '@dhis2/ui' import React from 'react' import { useSectionListFilters } from './../../../lib' -import { DynamicFilters } from './DynamicFilters' +import { DynamicFilters } from './filterSelectors/DynamicFilters' import { IdentifiableFilter } from './filterSelectors/IdentifiableFilter' import css from './FilterWrapper.module.css' diff --git a/src/components/sectionList/filters/filterSelectors/ConstantFilters.tsx b/src/components/sectionList/filters/filterSelectors/ConstantFilters.tsx index 2eb2ac45..94e768d8 100644 --- a/src/components/sectionList/filters/filterSelectors/ConstantFilters.tsx +++ b/src/components/sectionList/filters/filterSelectors/ConstantFilters.tsx @@ -5,6 +5,7 @@ import { DOMAIN_TYPE, getTranslatedProperty, VALUE_TYPE, + FORM_TYPE, } from '../../../../lib' import { ConstantSelectionFilter } from './ConstantSelectionFilter' @@ -17,6 +18,15 @@ export const DomainTypeSelectionFilter = () => { /> ) } +export const FormTypeFilter = () => { + return ( + + ) +} export const ValueTypeSelectionFilter = () => { return ( diff --git a/src/components/sectionList/filters/DynamicFilters.tsx b/src/components/sectionList/filters/filterSelectors/DynamicFilters.tsx similarity index 89% rename from src/components/sectionList/filters/DynamicFilters.tsx rename to src/components/sectionList/filters/filterSelectors/DynamicFilters.tsx index e74d4f51..772da489 100644 --- a/src/components/sectionList/filters/DynamicFilters.tsx +++ b/src/components/sectionList/filters/filterSelectors/DynamicFilters.tsx @@ -1,5 +1,6 @@ import React from 'react' -import { ConfigurableFilterKey } from './../../../lib' +import { ConfigurableFilterKey } from '../../../../lib' +import { useFilterKeys } from '../useFilterKeys' import { AggregationTypeFilter, CategoryComboFilter, @@ -7,30 +8,31 @@ import { CategoryOptionFilter, CategoryOptionGroupFilter, DataDimensionTypeFilter, - DataSetFilter, IndicatorFilter, DomainTypeSelectionFilter, IgnoreApprovalFilter, PublicAccessFilter, ValueTypeSelectionFilter, -} from './filterSelectors' -import { useFilterKeys } from './useFilterKeys' + FormTypeFilter, + DataSetFilter, +} from '.' type FilterKeyToComponentMap = Partial> const filterKeyToComponentMap: FilterKeyToComponentMap = { category: Categoryfilter, + formType: FormTypeFilter, indicatorType: IndicatorFilter, categoryOption: CategoryOptionFilter, categoryCombo: CategoryComboFilter, categoryOptionGroup: CategoryOptionGroupFilter, - dataSet: DataSetFilter, domainType: DomainTypeSelectionFilter, valueType: ValueTypeSelectionFilter, aggregationType: AggregationTypeFilter, publicAccess: PublicAccessFilter, dataDimensionType: DataDimensionTypeFilter, ignoreApproval: IgnoreApprovalFilter, + dataSet: DataSetFilter, } export const DynamicFilters = () => { diff --git a/src/components/sectionList/filters/filterSelectors/index.ts b/src/components/sectionList/filters/filterSelectors/index.ts index 7cf11768..fa056f4d 100644 --- a/src/components/sectionList/filters/filterSelectors/index.ts +++ b/src/components/sectionList/filters/filterSelectors/index.ts @@ -1,5 +1,4 @@ export * from './ConstantFilters' -export * from './DataSetFilter' export * from './CategoryComboFilter' export * from './IdentifiableFilter' export * from './ConstantSelectionFilter' @@ -9,3 +8,4 @@ export * from './CategoryOptionGroupFilter' export * from './BooleanFilters' export * from './CategoryOptionFilter' export * from './IndicatorFilter' +export * from './DataSetFilter' diff --git a/src/lib/constants/translatedModelConstants.ts b/src/lib/constants/translatedModelConstants.ts index f46b332e..4b1c01e3 100644 --- a/src/lib/constants/translatedModelConstants.ts +++ b/src/lib/constants/translatedModelConstants.ts @@ -79,12 +79,20 @@ export const GEOMETRY_TYPE = { GEOMETRYCOLLECTION: i18n.t('GeometryCollection'), } +export const FORM_TYPE = { + CUSTOM: i18n.t('Custom'), + DEFAULT: i18n.t('Default'), + SECTION: i18n.t('Section'), + SECTION_MULTIORG: i18n.t('Section Multi-org'), +} + const allConstantTranslations: Record = { ...AGGREGATION_TYPE, ...DOMAIN_TYPE, ...VALUE_TYPE, ...DATA_DIMENSION_TYPE, ...GEOMETRY_TYPE, + ...FORM_TYPE, } export const getConstantTranslation = (constant: string): string => { diff --git a/src/lib/constants/translatedModelProperties.ts b/src/lib/constants/translatedModelProperties.ts index 0e9e10b9..702d87ac 100644 --- a/src/lib/constants/translatedModelProperties.ts +++ b/src/lib/constants/translatedModelProperties.ts @@ -14,6 +14,7 @@ const TRANSLATED_PROPERTY: Record = { lastUpdatedBy: i18n.t('Last updated by'), created: i18n.t('Created'), domainType: i18n.t('Domain type'), + formType: i18n.t('Form type'), dataSet: i18n.t('Data set'), lastUpdated: i18n.t('Last updated'), name: i18n.t('Name'), diff --git a/src/lib/sectionList/filters/filterConfig.tsx b/src/lib/sectionList/filters/filterConfig.tsx index 975aaea1..5593d716 100644 --- a/src/lib/sectionList/filters/filterConfig.tsx +++ b/src/lib/sectionList/filters/filterConfig.tsx @@ -1,6 +1,6 @@ import { BooleanParam, StringParam } from 'use-query-params' import { z } from 'zod' -import { Category, DataElement } from '../../../types/generated' +import { Category, DataElement, DataSet } from '../../../types/generated' import { KeysOfValue } from '../../../types/utility' import { IDENTIFIABLE_FILTER_KEY } from '../../constants' import { isValidUid, parseAccessString } from '../../models' @@ -15,6 +15,7 @@ export const filterParamsSchema = z aggregationType: z.array(z.nativeEnum(DataElement.aggregationType)), categoryCombo: zodArrayIds, category: zodArrayIds, + formType: z.array(z.nativeEnum(DataSet.formType)), categoryOption: zodArrayIds, categoryOptionGroup: zodArrayIds, dataSet: zodArrayIds, @@ -38,6 +39,7 @@ export const filterQueryParamType = { valueType: CustomDelimitedArrayParam, dataSet: CustomDelimitedArrayParam, category: CustomDelimitedArrayParam, + formType: CustomDelimitedArrayParam, categoryOption: CustomDelimitedArrayParam, categoryCombo: CustomDelimitedArrayParam, categoryOptionGroup: CustomDelimitedArrayParam, diff --git a/src/lib/sectionList/listViews/sectionListViewsConfig.ts b/src/lib/sectionList/listViews/sectionListViewsConfig.ts index 1d0a0978..277a70b1 100644 --- a/src/lib/sectionList/listViews/sectionListViewsConfig.ts +++ b/src/lib/sectionList/listViews/sectionListViewsConfig.ts @@ -98,6 +98,20 @@ export const modelListViewsConfig = { default: ['domainType', 'valueType', 'dataSet', 'categoryCombo'], }, }, + dataSet: { + columns: { + default: [ + 'name', + { label: i18n.t('Form type'), path: 'formType' }, + { label: i18n.t('Period type'), path: 'periodType' }, + 'lastUpdated', + DESCRIPTORS.publicAccess, + ], + }, + filters: { + default: ['formType'], + }, + }, organisationUnit: { columns: { available: [],