Skip to content

Commit 1e9771a

Browse files
Merge remote-tracking branch 'origin/main' into fix-mui-theme
2 parents ef87521 + 6315ecc commit 1e9771a

File tree

50 files changed

+587
-294
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+587
-294
lines changed

src/components/app-wrapper.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,17 @@ const lightTheme = createTheme({
133133
common: {
134134
background: '#F5F5F5',
135135
activeBackground: '#BBDEFB',
136-
selectedBackground: '#E1F5FE',
137136
},
138137
modification: {
139138
border: 'solid 1px #999FA1',
139+
selectedBackground: '#E1F5FE',
140140
selectedBorder: 'solid 1px #0288D1',
141141
hoverBorderColor: '#03A9F4',
142142
activeBorderColor: '#29B6F6',
143143
},
144144
root: {
145145
border: 'solid 1px #3CEC96',
146+
selectedBackground: '#E1F5FE',
146147
hoverBorderColor: '#3CEC96',
147148
activeBorderColor: '#64B5F6',
148149
icon: {
@@ -246,16 +247,17 @@ const darkTheme = createTheme({
246247
common: {
247248
background: '#2C2E2E',
248249
activeBackground: '#263238',
249-
selectedBackground: '#212121',
250250
},
251251
modification: {
252252
border: 'solid 1px #BDBDBD',
253-
selectedBorder: 'solid 1px #29B6F6',
253+
selectedBackground: '#37474F',
254+
selectedBorder: 'solid 3px #29B6F6',
254255
hoverBorderColor: '#B3E5FC',
255256
activeBorderColor: '#00A6D9',
256257
},
257258
root: {
258259
border: 'solid 1px #3CEC96',
260+
selectedBackground: '#212121',
259261
hoverBorderColor: '#00C853',
260262
activeBorderColor: '#00E676',
261263
icon: {

src/components/dialogs/limits/limits-pane-utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ export const updateOpLimitsGroups = (
235235

236236
// updates limit values :
237237
updatedOpLG.forEach((opLG: OperationalLimitsGroup) => {
238-
const equivalentFromMapServer = mapServerBranch.currentLimits.find(
238+
const equivalentFromMapServer = mapServerBranch.currentLimits?.find(
239239
(currentLimit: CurrentLimits) =>
240240
currentLimit.id === opLG.name && currentLimit.applicability === opLG.applicability
241241
);
@@ -383,7 +383,7 @@ export const addModificationTypeToOpLimitsGroups = (
383383
const temporaryLimits: TemporaryLimit[] = addModificationTypeToTemporaryLimits(
384384
sanitizeLimitNames(formLimitsGroup.currentLimits?.[TEMPORARY_LIMITS]),
385385
networkCurrentLimits?.temporaryLimits ?? [],
386-
editData?.operationalLimitsGroups.find(
386+
editData?.operationalLimitsGroups?.find(
387387
(editDataOpLimitGroup: OperationalLimitsGroup) =>
388388
editDataOpLimitGroup.id === formLimitsGroup.name &&
389389
editDataOpLimitGroup.applicability === formLimitsGroup.applicability

src/components/dialogs/network-modifications/limit-sets/limit-sets-modification-dialog.tsx

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* License, v. 2.0. If a copy of the MPL was not distributed with this
55
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
*/
7-
import { AMOUNT_TEMPORARY_LIMITS, CSV_FILENAME, MODIFICATIONS_TABLE, SIDE, TYPE } from '../../../utils/field-constants';
7+
import { AMOUNT_TEMPORARY_LIMITS, CSV_FILENAME, MODIFICATIONS_TABLE, TYPE } from '../../../utils/field-constants';
88
import { useIntl } from 'react-intl';
99
import { CustomFormProvider, ModificationType, useSnackMessage } from '@gridsuite/commons-ui';
1010
import { SubmitHandler, useForm } from 'react-hook-form';
@@ -20,11 +20,11 @@ import { LimitSetsTabularModificationForm } from './limit-sets-tabular-modificat
2020
import { LIMIT_SETS_TABULAR_MODIFICATION_EQUIPMENTS } from '../tabular/tabular-modification-utils';
2121
import { formatModification } from '../tabular/tabular-common';
2222
import { createTabularModification } from '../../../../services/study/network-modifications';
23-
import { BranchSide } from '../../../utils/constants';
2423
import {
2524
emptyFormData,
2625
formatBackToFront,
2726
formatOperationalLimitGroupsFrontToBack,
27+
formatSelectedOperationalGroupId,
2828
formSchema,
2929
LimitSetModificationMetadata,
3030
SchemaType,
@@ -86,17 +86,10 @@ export function LimitSetsModificationDialog({
8686
Object.keys(modification).forEach((key) => {
8787
modification[key] = row[key];
8888
});
89-
90-
if (modification[SIDE] === BranchSide.ONE) {
91-
modification.operationalLimitsGroup1 = [
92-
formatOperationalLimitGroupsFrontToBack(modification, amountMaxTemporaryLimits, BranchSide.ONE),
93-
];
94-
} else if (modification[SIDE] === BranchSide.TWO) {
95-
modification.operationalLimitsGroup2 = [
96-
formatOperationalLimitGroupsFrontToBack(modification, amountMaxTemporaryLimits, BranchSide.TWO),
97-
];
98-
}
99-
89+
modification.operationalLimitsGroups = [
90+
formatOperationalLimitGroupsFrontToBack(modification, amountMaxTemporaryLimits),
91+
];
92+
formatSelectedOperationalGroupId(modification);
10093
modification.type = modificationType;
10194
return modification;
10295
});

src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-utils.ts

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77
import {
88
AMOUNT_TEMPORARY_LIMITS,
9+
APPLICABIlITY,
910
CSV_FILENAME,
1011
EQUIPMENT_ID,
1112
IS_ACTIVE,
@@ -14,7 +15,8 @@ import {
1415
MODIFICATION_TYPE,
1516
MODIFICATIONS_TABLE,
1617
PERMANENT_LIMIT,
17-
SELECTED_OPERATIONAL_LIMITS_GROUP_ID,
18+
SELECTED_OPERATIONAL_LIMITS_GROUP_1,
19+
SELECTED_OPERATIONAL_LIMITS_GROUP_2,
1820
SIDE,
1921
TEMPORARY_LIMIT_DURATION,
2022
TEMPORARY_LIMIT_MODIFICATION_TYPE,
@@ -23,11 +25,13 @@ import {
2325
TEMPORARY_LIMITS_MODIFICATION_TYPE,
2426
TYPE,
2527
} from '../../../utils/field-constants';
26-
import { BranchSide } from '../../../utils/constants';
2728
import { EQUIPMENT_TYPES } from '../../../utils/equipment-types';
2829
import yup from '../../../utils/yup-config';
2930
import { UUID } from 'crypto';
3031
import { LIMIT_SETS_TABULAR_MODIFICATION_EQUIPMENTS } from '../tabular/tabular-modification-utils';
32+
import { toModificationOperation } from '../../../utils/utils';
33+
import { AttributeModification } from '../../../../services/network-modification-types';
34+
import { APPLICABILITY } from '../../../network/constants';
3135

3236
type TemporaryLimit = {
3337
name: string;
@@ -45,7 +49,7 @@ type OperationalLimitGroup = {
4549
modificationType: string;
4650
temporaryLimitsModificationType: string;
4751
selectedOperationalLimitsGroupId: string;
48-
side: string;
52+
applicability: string;
4953
currentLimits: CurrentLimits;
5054
type: string;
5155
};
@@ -56,8 +60,9 @@ type LimitSetModification = {
5660
activated: boolean;
5761
date: string;
5862
equipmentId: string;
59-
operationalLimitsGroup1: OperationalLimitGroup[];
60-
operationalLimitsGroup2: OperationalLimitGroup[];
63+
operationalLimitsGroups: OperationalLimitGroup[];
64+
selectedOperationalLimitsGroup1: AttributeModification<string>;
65+
selectedOperationalLimitsGroup2: AttributeModification<string>;
6166
stashed: boolean;
6267
};
6368

@@ -75,11 +80,7 @@ export type LimitSetModificationMetadata = {
7580
const getAmountTemporaryLimits = (editData: LimitSetModificationMetadata) => {
7681
let maxLength = 0;
7782
for (const mod of editData.modifications) {
78-
for (const limit of mod?.operationalLimitsGroup1 ?? []) {
79-
const temporaryLimitsLength = limit.currentLimits?.temporaryLimits?.length ?? 0;
80-
maxLength = Math.max(maxLength, temporaryLimitsLength);
81-
}
82-
for (const limit of mod?.operationalLimitsGroup2 ?? []) {
83+
for (const limit of mod?.operationalLimitsGroups ?? []) {
8384
const temporaryLimitsLength = limit.currentLimits?.temporaryLimits?.length ?? 0;
8485
maxLength = Math.max(maxLength, temporaryLimitsLength);
8586
}
@@ -105,15 +106,26 @@ const formatTemporaryLimitsFrontToBack = (modification: ModificationRow, amountM
105106
}
106107
return temporaryLimits;
107108
};
109+
export const formatSelectedOperationalGroupId = (modification: ModificationRow) => {
110+
if (modification[IS_ACTIVE]) {
111+
if (modification[SIDE] === APPLICABILITY.SIDE1.id) {
112+
modification.selectedOperationalLimitsGroup1 = toModificationOperation(modification[LIMIT_GROUP_NAME]);
113+
} else if (modification[SIDE] === APPLICABILITY.SIDE2.id) {
114+
modification.selectedOperationalLimitsGroup2 = toModificationOperation(modification[LIMIT_GROUP_NAME]);
115+
} else if (modification[SIDE] === APPLICABILITY.EQUIPMENT.id) {
116+
modification.selectedOperationalLimitsGroup1 = toModificationOperation(modification[LIMIT_GROUP_NAME]);
117+
modification.selectedOperationalLimitsGroup2 = toModificationOperation(modification[LIMIT_GROUP_NAME]);
118+
}
119+
}
120+
};
121+
108122
export const formatOperationalLimitGroupsFrontToBack = (
109123
modification: ModificationRow,
110-
amountMaxTemporaryLimits: number,
111-
side: BranchSide
124+
amountMaxTemporaryLimits: number
112125
) => {
113126
return {
114127
id: modification[LIMIT_GROUP_NAME],
115-
side: side,
116-
selectedOperationalLimitsGroupId: modification[IS_ACTIVE] ? modification[LIMIT_GROUP_NAME] : null,
128+
applicability: modification[SIDE],
117129
modificationType: modification[MODIFICATION_TYPE],
118130
temporaryLimitsModificationType: modification[TEMPORARY_LIMITS_MODIFICATION_TYPE],
119131
currentLimits: {
@@ -157,8 +169,15 @@ const mapOperationalLimitGroupBackToFront = (
157169
): ModificationRow => {
158170
let row: ModificationRow = {};
159171
row[EQUIPMENT_ID] = modification[EQUIPMENT_ID];
160-
row[IS_ACTIVE] = group[SELECTED_OPERATIONAL_LIMITS_GROUP_ID] === group.id;
161-
row[SIDE] = group[SIDE];
172+
row[IS_ACTIVE] =
173+
(modification[SELECTED_OPERATIONAL_LIMITS_GROUP_1]?.value === group.id &&
174+
group.applicability === APPLICABILITY.SIDE1.id) ||
175+
(modification[SELECTED_OPERATIONAL_LIMITS_GROUP_2]?.value === group.id &&
176+
group.applicability === APPLICABILITY.SIDE2.id) ||
177+
(modification[SELECTED_OPERATIONAL_LIMITS_GROUP_2]?.value === group.id &&
178+
modification[SELECTED_OPERATIONAL_LIMITS_GROUP_1]?.value === group.id &&
179+
group.applicability === APPLICABILITY.EQUIPMENT.id);
180+
row[SIDE] = group[APPLICABIlITY];
162181
row[LIMIT_GROUP_NAME] = group.id;
163182
row[MODIFICATION_TYPE] = group.modificationType;
164183
row[TEMPORARY_LIMITS_MODIFICATION_TYPE] = group.temporaryLimitsModificationType;
@@ -174,10 +193,7 @@ const mapOperationalLimitGroupBackToFront = (
174193
const formatOperationalLimitGroupsBackToFront = (group: LimitSetModificationMetadata): OperationalLimitGroup[] => {
175194
const modifications: OperationalLimitGroup[] = [];
176195
for (let modification of group.modifications) {
177-
for (let operationalLimitGroup of modification?.operationalLimitsGroup1 ?? []) {
178-
modifications.push(mapOperationalLimitGroupBackToFront(modification, operationalLimitGroup));
179-
}
180-
for (let operationalLimitGroup of modification?.operationalLimitsGroup2 ?? []) {
196+
for (let operationalLimitGroup of modification?.operationalLimitsGroups ?? []) {
181197
modifications.push(mapOperationalLimitGroupBackToFront(modification, operationalLimitGroup));
182198
}
183199
}

src/components/dialogs/network-modifications/line/creation/line-creation-dialog.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,6 @@ const LineCreationDialog = ({
270270
data[FINAL_CURRENT_LIMITS].forEach((item) => {
271271
const temporaryLimitsList = [];
272272
if (item.temporaryLimitValue) {
273-
console.log('item', item);
274273
temporaryLimitsList.push({
275274
name: item.temporaryLimitName,
276275
acceptableDuration: item.temporaryLimitAcceptableDuration,

src/components/dialogs/network-modifications/tabular/tabular-modification-utils.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ import {
101101
import { toModificationOperation } from '../../../utils/utils';
102102
import { ReactiveCapabilityCurvePoints } from 'components/dialogs/reactive-limits/reactive-limits.type';
103103
import {
104+
APPLICABILITY,
104105
BOOLEAN,
105106
CONNECTION_DIRECTIONS,
106107
ENERGY_SOURCES,
@@ -111,7 +112,6 @@ import {
111112
SHUNT_COMPENSATOR_TYPES,
112113
SIDE as SIDE_CONSTANTS,
113114
} from '../../../network/constants';
114-
import { BranchSide } from '../../../utils/constants';
115115
import {
116116
convertReactiveCapabilityCurvePointsFromBackToFront,
117117
convertReactiveCapabilityCurvePointsFromFrontToBack,
@@ -159,9 +159,14 @@ export const LIMIT_SETS_TABULAR_MODIFICATION_EQUIPMENTS: { [key: string]: string
159159

160160
export const LIMIT_SETS_TABULAR_MODIFICATION_FIXED_FIELDS: TabularField[] = [
161161
{ id: EQUIPMENT_ID, required: true },
162-
{ id: SIDE, required: true, type: ENUM, options: Object.values(BranchSide) },
162+
{
163+
id: SIDE,
164+
required: true,
165+
type: ENUM,
166+
options: Object.values(APPLICABILITY).map((applicability) => applicability.id),
167+
},
163168
{ id: LIMIT_GROUP_NAME, required: true },
164-
{ id: IS_ACTIVE, required: true, type: BOOLEAN },
169+
{ id: IS_ACTIVE, required: false, type: BOOLEAN },
165170
{ id: PERMANENT_LIMIT, required: false, type: NUMBER },
166171
{
167172
id: MODIFICATION_TYPE,

src/components/dialogs/network-modifications/two-windings-transformer/creation/two-windings-transformer-creation-dialog.jsx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -179,24 +179,24 @@ const TwoWindingsTransformerCreationDialog = ({
179179
};
180180

181181
const getTapSideForEdit = (twt, tap) => {
182-
return tap?.regulatingTerminalId === twt.equipmentId
183-
? tap?.regulatingTerminalVlId === twt?.voltageLevelId1
182+
return tap?.terminalRefConnectableId === twt.equipmentId
183+
? tap?.terminalRefConnectableVlId === twt?.voltageLevelId1
184184
? SIDE.SIDE1.id
185185
: SIDE.SIDE2.id
186186
: null;
187187
};
188188

189189
const getTapSideForCopy = (twt, tap) => {
190190
return tap?.regulatingTerminalConnectableId === twt.id
191-
? tap?.regulatingTerminalVlId === twt?.voltageLevelId1
191+
? tap?.terminalRefConnectableVlId === twt?.voltageLevelId1
192192
? SIDE.SIDE1.id
193193
: SIDE.SIDE2.id
194194
: null;
195195
};
196196

197197
const getRegulationTypeForEdit = (twt, tap) => {
198-
return tap?.regulatingTerminalId != null
199-
? tap?.regulatingTerminalId === twt.equipmentId
198+
return tap?.terminalRefConnectableId != null
199+
? tap?.terminalRefConnectableId === twt.equipmentId
200200
? REGULATION_TYPES.LOCAL.id
201201
: REGULATION_TYPES.DISTANT.id
202202
: null;
@@ -275,9 +275,9 @@ const TwoWindingsTransformerCreationDialog = ({
275275
highTapPosition: computeHighTapPosition(twt?.[PHASE_TAP_CHANGER]?.[STEPS]),
276276
tapPosition: twt?.[PHASE_TAP_CHANGER]?.[TAP_POSITION],
277277
steps: addSelectedFieldToRows(twt?.[PHASE_TAP_CHANGER]?.[STEPS]),
278-
equipmentId: twt?.[PHASE_TAP_CHANGER]?.regulatingTerminalId,
279-
equipmentType: twt?.[PHASE_TAP_CHANGER]?.regulatingTerminalType,
280-
voltageLevelId: twt?.[PHASE_TAP_CHANGER]?.regulatingTerminalVlId,
278+
equipmentId: twt?.[PHASE_TAP_CHANGER]?.terminalRefConnectableId,
279+
equipmentType: twt?.[PHASE_TAP_CHANGER]?.terminalRefConnectableType,
280+
voltageLevelId: twt?.[PHASE_TAP_CHANGER]?.terminalRefConnectableVlId,
281281
}),
282282
...getRatioTapChangerFormData({
283283
enabled: twt?.[RATIO_TAP_CHANGER]?.[TAP_POSITION] !== undefined,
@@ -291,9 +291,9 @@ const TwoWindingsTransformerCreationDialog = ({
291291
highTapPosition: computeHighTapPosition(twt?.[RATIO_TAP_CHANGER]?.[STEPS]),
292292
tapPosition: twt?.[RATIO_TAP_CHANGER]?.[TAP_POSITION],
293293
steps: addSelectedFieldToRows(twt?.[RATIO_TAP_CHANGER]?.[STEPS]),
294-
equipmentId: twt?.[RATIO_TAP_CHANGER]?.regulatingTerminalId,
295-
equipmentType: twt?.[RATIO_TAP_CHANGER]?.regulatingTerminalType,
296-
voltageLevelId: twt?.[RATIO_TAP_CHANGER]?.regulatingTerminalVlId,
294+
equipmentId: twt?.[RATIO_TAP_CHANGER]?.terminalRefConnectableId,
295+
equipmentType: twt?.[RATIO_TAP_CHANGER]?.terminalRefConnectableType,
296+
voltageLevelId: twt?.[RATIO_TAP_CHANGER]?.terminalRefConnectableVlId,
297297
}),
298298
...getPropertiesFromModification(twt.properties),
299299
});
@@ -355,7 +355,7 @@ const TwoWindingsTransformerCreationDialog = ({
355355
steps: addSelectedFieldToRows(twt?.[RATIO_TAP_CHANGER]?.[STEPS]),
356356
equipmentId: twt?.[RATIO_TAP_CHANGER]?.regulatingTerminalConnectableId,
357357
equipmentType: twt?.[RATIO_TAP_CHANGER]?.regulatingTerminalConnectableType,
358-
voltageLevelId: twt?.[RATIO_TAP_CHANGER]?.regulatingTerminalVlId,
358+
voltageLevelId: twt?.[RATIO_TAP_CHANGER]?.terminalRefConnectableVlId,
359359
}),
360360
...getPhaseTapChangerFormData({
361361
enabled: twt?.[PHASE_TAP_CHANGER]?.[TAP_POSITION] !== undefined,
@@ -380,7 +380,7 @@ const TwoWindingsTransformerCreationDialog = ({
380380
highTapPosition: computeHighTapPosition(twt?.[PHASE_TAP_CHANGER]?.[STEPS]),
381381
tapPosition: twt?.[PHASE_TAP_CHANGER]?.[TAP_POSITION],
382382
steps: addSelectedFieldToRows(twt?.[PHASE_TAP_CHANGER]?.[STEPS]),
383-
voltageLevelId: twt?.[PHASE_TAP_CHANGER]?.regulatingTerminalVlId,
383+
voltageLevelId: twt?.[PHASE_TAP_CHANGER]?.terminalRefConnectableVlId,
384384
equipmentId: twt?.[PHASE_TAP_CHANGER]?.regulatingTerminalConnectableId,
385385
equipmentType: twt?.[PHASE_TAP_CHANGER]?.regulatingTerminalConnectableType,
386386
}),
@@ -500,16 +500,16 @@ const TwoWindingsTransformerCreationDialog = ({
500500
ratioTap = {
501501
...ratioTapChangerFormValues,
502502
isRegulating: computeRatioTapChangerRegulating(ratioTapChangerFormValues),
503-
regulatingTerminalId: getRegulatingValue(
503+
terminalRefConnectableId: getRegulatingValue(
504504
computeRegulatingTerminalId,
505505
ratioTapChangerFormValues,
506506
twt[EQUIPMENT_ID]
507507
),
508-
regulatingTerminalType: getRegulatingValue(
508+
terminalRefConnectableType: getRegulatingValue(
509509
computeRegulatingTerminalType,
510510
ratioTapChangerFormValues
511511
),
512-
regulatingTerminalVlId: getRegulatingValue(
512+
terminalRefConnectableVlId: getRegulatingValue(
513513
computeTapTerminalVlId,
514514
ratioTapChangerFormValues,
515515
characteristics[CONNECTIVITY_1],
@@ -527,9 +527,9 @@ const TwoWindingsTransformerCreationDialog = ({
527527
hasLoadTapChangingCapabilities: true,
528528
isRegulating: computePhaseTapChangerRegulating(phaseTapChangerFormValues),
529529
regulationValue: computePhaseTapChangerRegulationValue(phaseTapChangerFormValues),
530-
regulatingTerminalId: computeRegulatingTerminalId(phaseTapChangerFormValues, twt[EQUIPMENT_ID]),
531-
regulatingTerminalType: computeRegulatingTerminalType(phaseTapChangerFormValues),
532-
regulatingTerminalVlId: computeTapTerminalVlId(
530+
terminalRefConnectableId: computeRegulatingTerminalId(phaseTapChangerFormValues, twt[EQUIPMENT_ID]),
531+
terminalRefConnectableType: computeRegulatingTerminalType(phaseTapChangerFormValues),
532+
terminalRefConnectableVlId: computeTapTerminalVlId(
533533
phaseTapChangerFormValues,
534534
characteristics[CONNECTIVITY_1],
535535
characteristics[CONNECTIVITY_2]

0 commit comments

Comments
 (0)