Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
import { FilterConfig, FilterType } from '../../../types/custom-aggrid-types';
import { updateComputationResultFiltersColumn } from '../../../services/study/study-config';
import { FilterConfig, FilterType } from '../../../../types/custom-aggrid-types';
import { updateComputationResultFiltersColumn } from '../../../../services/study/study-config';
import { GridApi } from 'ag-grid-community';
import { UUID } from 'node:crypto';

Expand All @@ -23,16 +23,16 @@ export const updateComputationColumnsFilters = (
}
const filter = filters?.find((f) => f.column === colId);
onBeforePersist?.();
const columnDto = {
const columnFilterInfos = {
columnId: colId,
columnFilterInfos: filter
? {
filterDataType: filter?.dataType,
filterType: filter?.type,
filterValue: filter?.value,
filterValue: JSON.stringify(filter?.value),
filterTolerance: filter?.tolerance,
}
: null,
};
updateComputationResultFiltersColumn(studyUuid, filterType, filterSubType, columnDto).then();
updateComputationResultFiltersColumn(studyUuid, filterType, filterSubType, columnFilterInfos).then();
};
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,19 @@ export type ComputationResultColumnFilterInfos = {
columnId: string;
columnFilterInfos: FilterConfig;
};
function toColumnFilterInfos(infos: ComputationResultColumnFilterInfos[] | null): FilterConfig[] {
function toFilterConfig(infos: ComputationResultColumnFilterInfos[] | null): FilterConfig[] {
if (!Array.isArray(infos)) {
return EMPTY_ARRAY;
}
return infos.flatMap(mapColumnFilters);
}

function mapColumnFilters({ columnId, columnFilterInfos }: ComputationResultColumnFilterInfos): FilterConfig[] {
const filters = Array.isArray(columnFilterInfos) ? columnFilterInfos : [columnFilterInfos];

return filters.map((filter) => ({
column: columnId,
value: filter.filterValue,
type: filter.filterType,
dataType: filter.filterDataType,
tolerance: filter.filterTolerance ?? undefined,
}));
return infos.flatMap(({ columnId, columnFilterInfos }) =>
(Array.isArray(columnFilterInfos) ? columnFilterInfos : [columnFilterInfos]).map((filter) => ({
column: columnId,
value: JSON.parse(filter.filterValue),
type: filter.filterType,
dataType: filter.filterDataType,
tolerance: filter.filterTolerance,
}))
);
}

const EMPTY_ARRAY: FilterConfig[] = [];
Expand All @@ -41,7 +37,7 @@ export function useComputationColumnFilters(filterType: FilterType, computationS
useEffect(() => {
studyUuid &&
getComputationResultColumnFilters(studyUuid, filterType, computationSubType).then((infos) => {
const filters = toColumnFilterInfos(infos);
const filters = toFilterConfig(infos);
dispatch(updateColumnFiltersAction(filterType, computationSubType, filters));
});
}, [dispatch, studyUuid, filterType, computationSubType]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import {
} from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-filter.type';
import { AGGRID_LOCALES } from '../../../translations/not-intl/aggrid-locales';
import { fetchDynamicSimulationResultTimeline } from '../../../services/study/dynamic-simulation';
import { updateComputationColumnsFilters } from '../common/update-computation-columns-filters';
import { updateComputationColumnsFilters } from '../common/column-filter/update-computation-columns-filters';
import { useAgGridInitialColumnFilters } from '../common/use-ag-grid-initial-column-filters';

const styles = {
Expand Down
2 changes: 1 addition & 1 deletion src/components/results/loadflow/load-flow-result-tab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ import { useLoadFlowResultColumnActions } from './use-load-flow-result-column-ac
import { useOpenLoaderShortWait } from '../../dialogs/commons/handle-loader';
import { RESULTS_LOADING_DELAY } from '../../network/constants';
import { useComputationGlobalFilters } from '../common/global-filter/use-computation-global-filters';
import { useComputationColumnFilters } from '../common/global-filter/use-computation-column-filters';
import { useComputationColumnFilters } from '../common/column-filter/use-computation-column-filters';

const styles = {
flexWrapper: {
Expand Down
23 changes: 11 additions & 12 deletions src/components/results/loadflow/load-flow-result-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@ import {
CountryAdequacy,
ExchangePair,
ExchangeValue,
LimitTypes,
OverloadedEquipment,
OverloadedEquipmentFromBack,
} from './load-flow-result.type';
import { IntlShape } from 'react-intl';
import { ColDef, ICellRendererParams, ValueFormatterParams, ValueGetterParams } from 'ag-grid-community';
import { BranchSide } from '../../utils/constants';
import { UNDEFINED_ACCEPTABLE_DURATION } from '../../utils/utils';
import { makeAgGridCustomHeaderColumn } from 'components/custom-aggrid/utils/custom-aggrid-header-utils';
import { JSX, useEffect, useState } from 'react';
Expand Down Expand Up @@ -49,15 +47,16 @@ import {
} from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-filter.type';
import { convertDuration, formatNAValue } from 'components/custom-aggrid/utils/format-values-utils';
import { SubjectIdRendererType } from '../securityanalysis/security-analysis.type';
import { updateComputationColumnsFilters } from '../common/update-computation-columns-filters';
import { updateComputationColumnsFilters } from '../common/column-filter/update-computation-columns-filters';
import { SortParams } from '../../custom-aggrid/hooks/use-custom-aggrid-sort';
import { BranchSide } from '../../utils/constants';

export const convertSide = (side: string | undefined, intl: IntlShape) => {
export const convertSide = (side: string | undefined, intl: IntlShape): string => {
return side === BranchSide.ONE
? intl.formatMessage({ id: 'Side1' })
: side === BranchSide.TWO
? intl.formatMessage({ id: 'Side2' })
: undefined;
: '';
};

export const FROM_COLUMN_TO_FIELD_LIMIT_VIOLATION_RESULT: Record<string, string> = {
Expand Down Expand Up @@ -139,7 +138,7 @@ export const makeData = (
patlLimit: overloadedEquipment.patlLimit,
limitName: translateLimitNameBackToFront(overloadedEquipment.limitName, intl),
nextLimitName: translateLimitNameBackToFront(overloadedEquipment.nextLimitName, intl),
side: convertSide(overloadedEquipment.side, intl),
side: overloadedEquipment.side,
limitType: overloadedEquipment.limitType,
};
});
Expand Down Expand Up @@ -373,13 +372,12 @@ export const loadFlowCurrentViolationsColumnsDefinition = (
getOptionLabel: getEnumLabel,
}
),
valueGetter: (value: ValueGetterParams) => value.data.side,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
];
};

export const formatLimitType = (limitType: string, intl: IntlShape) => {
return limitType in LimitTypes ? intl.formatMessage({ id: limitType }) : limitType;
};
export const loadFlowVoltageViolationsColumnsDefinition = (
intl: IntlShape,
filterEnums: FilterEnumsType,
Expand Down Expand Up @@ -417,9 +415,8 @@ export const loadFlowVoltageViolationsColumnsDefinition = (
getOptionLabel: getEnumLabel,
}
),
valueGetter: (value: ValueGetterParams) => {
return formatLimitType(value.data.limitType, intl);
},
valueGetter: (value: ValueGetterParams) => value.data.limitType,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
makeAgGridCustomHeaderColumn(
makeAgGridFloatColumn('VoltageViolationLimit', 'limit', intl, sortParams, filterParams)
Expand Down Expand Up @@ -466,6 +463,8 @@ export const componentColumnsDefinition = (
getOptionLabel: getEnumLabel,
}
),
valueGetter: (value: ValueGetterParams) => value.data.status,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
cellRenderer: statusCellRender,
}),
makeAgGridCustomHeaderColumn({
Expand Down
2 changes: 1 addition & 1 deletion src/components/results/pccmin/pcc-min-result.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import { UUID } from 'node:crypto';
import { PccMinExportButton } from './pcc-min-export-button';
import { buildValidGlobalFilters } from '../common/global-filter/build-valid-global-filters';
import { GlobalFilter } from '../common/global-filter/global-filter-types';
import { useComputationColumnFilters } from '../common/global-filter/use-computation-column-filters';
import { useComputationColumnFilters } from '../common/column-filter/use-computation-column-filters';

interface PccMinResultProps {
studyUuid: UUID;
Expand Down
2 changes: 1 addition & 1 deletion src/components/results/pccmin/pcc-min-result.type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import { PCCMIN_ANALYSIS_RESULT_SORT_STORE, PCCMIN_RESULT } from 'utils/store-so
import { IntlShape } from 'react-intl';
import { makeAgGridCustomHeaderColumn } from 'components/custom-aggrid/utils/custom-aggrid-header-utils';
import { GridApi, ICellRendererParams } from 'ag-grid-community';
import { updateComputationColumnsFilters } from '../common/update-computation-columns-filters';
import { updateComputationColumnsFilters } from '../common/column-filter/update-computation-columns-filters';

export interface SinglePccMinResultInfos {
singlePccMinResultUuid: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import {
} from './security-analysis.type';
import { IntlShape, useIntl } from 'react-intl';
import { SecurityAnalysisTable } from './security-analysis-table';
import { convertSide } from '../loadflow/load-flow-result-utils';
import { translateLimitNameBackToFront } from '../common/utils';
import { MAX_INT32 } from 'services/utils';

Expand All @@ -32,17 +31,15 @@ export const SecurityAnalysisResultN: FunctionComponent<SecurityAnalysisResultNP
return {
subjectId: subjectId,
locationId: limitViolation?.locationId,
limitType: intl.formatMessage({
id: limitViolation?.limitType,
}),
limitType: limitViolation?.limitType,
// TODO: Remove this check after fixing the acceptableDuration issue on the Powsybl side
acceptableDuration:
limitViolation?.acceptableDuration === MAX_INT32 ? null : limitViolation?.acceptableDuration,
limitName: translateLimitNameBackToFront(limitViolation?.limitName, intl),
limit: limitViolation?.limit,
value: limitViolation?.value,
loading: limitViolation?.loading,
side: convertSide(limitViolation?.side || '', intl),
side: limitViolation?.side,
patlLoading: limitViolation?.patlLoading,
patlLimit: limitViolation?.patlLimit,
nextLimitName: translateLimitNameBackToFront(limitViolation?.nextLimitName, intl),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ import { usePaginationSelector } from 'hooks/use-pagination-selector';
import { UUID } from 'node:crypto';
import { useComputationGlobalFilters } from '../common/global-filter/use-computation-global-filters';
import { buildValidGlobalFilters } from '../common/global-filter/build-valid-global-filters';
import { useComputationColumnFilters } from '../common/global-filter/use-computation-column-filters';
import { useComputationColumnFilters } from '../common/column-filter/use-computation-column-filters';

const styles = {
tabsAndToolboxContainer: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ import {
} from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-filter.type';
import { convertDuration, formatNAValue } from '../../custom-aggrid/utils/format-values-utils';
import { MAX_INT32 } from 'services/utils';
import { updateComputationColumnsFilters } from '../common/update-computation-columns-filters';
import { updateComputationColumnsFilters } from '../common/column-filter/update-computation-columns-filters';
import { SortParams } from '../../custom-aggrid/hooks/use-custom-aggrid-sort';
import type { UUID } from 'node:crypto';

Expand Down Expand Up @@ -104,11 +104,7 @@ export const flattenNmKResultsContingencies = (intl: IntlShape, result: Constrai
rows.push({
contingencyId,
contingencyEquipmentsIds: elements.map((element) => element.id),
status: status
? intl.formatMessage({
id: status,
})
: '',
status: status,
violationCount: subjectLimitViolations.length,
});
subjectLimitViolations?.forEach((constraint: Constraint) => {
Expand All @@ -117,19 +113,15 @@ export const flattenNmKResultsContingencies = (intl: IntlShape, result: Constrai
rows.push({
subjectId: subjectId,
locationId: limitViolation.locationId,
limitType: limitViolation.limitType
? intl.formatMessage({
id: limitViolation.limitType,
})
: '',
limitType: limitViolation.limitType,
limit: limitViolation.limit,
patlLimit: limitViolation.patlLimit,
value: limitViolation.value,
loading: limitViolation.loading,
patlLoading: limitViolation.patlLoading,
limitName: translateLimitNameBackToFront(limitViolation.limitName, intl),
nextLimitName: translateLimitNameBackToFront(limitViolation.nextLimitName, intl),
side: limitViolation.side ? intl.formatMessage({ id: limitViolation.side }) : '',
side: limitViolation.side,
linkedElementId: contingencyId,
// TODO: Remove this check after fixing the acceptableDuration issue on the Powsybl side
acceptableDuration:
Expand All @@ -156,19 +148,11 @@ export const flattenNmKResultsConstraints = (intl: IntlShape, result: Contingenc
rows.push({
contingencyId: contingency.contingencyId,
contingencyEquipmentsIds: contingency.elements?.map((element) => element.id),
status: contingency.status
? intl.formatMessage({
id: contingency.status,
})
: '',
limitType: limitViolation.limitType
? intl.formatMessage({
id: limitViolation.limitType,
})
: '',
status: contingency.status,
limitType: limitViolation.limitType,
limitName: translateLimitNameBackToFront(limitViolation.limitName, intl),
nextLimitName: translateLimitNameBackToFront(limitViolation.nextLimitName, intl),
side: limitViolation.side ? intl.formatMessage({ id: limitViolation.side }) : '',
side: limitViolation.side,
// TODO: Remove this check after fixing the acceptableDuration issue on the Powsybl side
acceptableDuration:
limitViolation?.acceptableDuration === MAX_INT32 ? null : limitViolation?.acceptableDuration,
Expand Down Expand Up @@ -313,6 +297,8 @@ export const securityAnalysisTableNColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.limitType,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
makeAgGridCustomHeaderColumn(makeAgGridStringColumn('Bus', 'locationId', intl, filterParams, sortParams)),
makeAgGridCustomHeaderColumn({
Expand Down Expand Up @@ -372,6 +358,8 @@ export const securityAnalysisTableNColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.side,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
];
};
Expand Down Expand Up @@ -408,6 +396,8 @@ export const securityAnalysisTableNmKContingenciesColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.status,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
makeAgGridCustomHeaderColumn({
...makeAgGridStringColumn('Equipment', 'subjectId', intl, filterParams, {
Expand All @@ -432,6 +422,8 @@ export const securityAnalysisTableNmKContingenciesColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.limitType,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
makeAgGridCustomHeaderColumn(
makeAgGridStringColumn('Bus', 'locationId', intl, filterParams, {
Expand Down Expand Up @@ -532,6 +524,8 @@ export const securityAnalysisTableNmKContingenciesColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.side,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
//the following column is used purely to determine which rows are a group 'parent' and which are its 'children'
//it is used for sorting actions
Expand Down Expand Up @@ -582,6 +576,8 @@ export const securityAnalysisTableNmKConstraintsColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.status,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
makeAgGridCustomHeaderColumn({
headerName: intl.formatMessage({ id: 'ViolationType' }),
Expand All @@ -599,6 +595,8 @@ export const securityAnalysisTableNmKConstraintsColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.limitType,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
makeAgGridCustomHeaderColumn(
makeAgGridStringColumn('Bus', 'locationId', intl, filterParams, {
Expand Down Expand Up @@ -690,6 +688,8 @@ export const securityAnalysisTableNmKConstraintsColumnsDefinition = (
getOptionLabel: getEnumLabel,
},
},
valueGetter: (value: ValueGetterParams) => value.data.side,
valueFormatter: (params: ValueFormatterParams) => getEnumLabel(params.value),
}),
//the following column is used purely to determine which rows are a group 'parent' and which are its 'children'
//it is used for sorting actions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,12 @@ export const useSecurityAnalysisColumnsDefs: UseSecurityAnalysisColumnsDefsProps

const getEnumLabel = useCallback(
(value: string) =>
intl.formatMessage({
id: value,
defaultMessage: value,
}),
value
? intl.formatMessage({
id: value,
defaultMessage: value,
})
: '',
[intl]
);

Expand Down
Loading
Loading