Skip to content

Commit a326302

Browse files
committed
front: drop tsv2 switch
Operational studies and stdcm both now use tsv2 model by default
1 parent 4388f9d commit a326302

File tree

24 files changed

+151
-609
lines changed

24 files changed

+151
-609
lines changed

front/src/applications/operationalStudies/views/Scenario.tsx

-15
This file was deleted.

front/src/applications/operationalStudies/views/SimulationResults.tsx

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next';
66
import { useSelector } from 'react-redux';
77
import { Rnd } from 'react-rnd';
88

9-
import { osrdEditoastApi, type SimulationReport } from 'common/api/osrdEditoastApi';
9+
import { osrdEditoastApi } from 'common/api/osrdEditoastApi';
1010
import SimulationWarpedMap from 'common/Map/WarpedMap/SimulationWarpedMap';
1111
import getScaleDomainFromValues from 'modules/simulationResult/components/ChartHelpers/getScaleDomainFromValues';
1212
import SimulationResultsMap from 'modules/simulationResult/components/SimulationResultsMap';
@@ -143,9 +143,7 @@ export default function SimulationResults({
143143
})}
144144
>
145145
<div className="row">
146-
<div className="col-xl-4">
147-
{selectedTrain && <TimeButtons selectedTrain={selectedTrain as SimulationReport} />}
148-
</div>
146+
<div className="col-xl-4">{selectedTrain && <TimeButtons />}</div>
149147
<div className="col-xl-8 d-flex justify-content-end mt-2 mt-xl-0">
150148
<TrainDetails />
151149
</div>

front/src/applications/operationalStudies/views/Study.tsx

+2-19
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import React, { useEffect, useMemo, useState } from 'react';
33
import { Pencil } from '@osrd-project/ui-icons';
44
import { useTranslation } from 'react-i18next';
55
import nextId from 'react-id-generator';
6-
import { useSelector } from 'react-redux';
76
import { useParams } from 'react-router-dom';
87

98
import BreadCrumbs from 'applications/operationalStudies/components/BreadCrumbs';
@@ -23,7 +22,6 @@ import { Loader, Spinner } from 'common/Loaders';
2322
import ScenarioCard from 'modules/scenario/components/ScenarioCard';
2423
import ScenarioCardEmpty from 'modules/scenario/components/ScenarioCardEmpty';
2524
import AddOrEditStudyModal from 'modules/study/components/AddOrEditStudyModal';
26-
import { getStdcmV2Activated, getTrainScheduleV2Activated } from 'reducers/user/userSelectors';
2725
import { budgetFormat } from 'utils/numbers';
2826

2927
type SortOptions =
@@ -43,9 +41,6 @@ export default function Study() {
4341
const { t } = useTranslation('operationalStudies/study');
4442
const { openModal } = useModal();
4543
const { projectId: urlProjectId, studyId: urlStudyId } = useParams() as studyParams;
46-
const trainScheduleV2Activated = useSelector(getTrainScheduleV2Activated);
47-
const stdcmV2Activated = useSelector(getStdcmV2Activated);
48-
const useTrainScheduleV2 = trainScheduleV2Activated || stdcmV2Activated;
4944

5045
const [scenariosList, setScenariosList] = useState<ScenarioWithCountTrains[]>([]);
5146
const [filter, setFilter] = useState('');
@@ -77,17 +72,6 @@ export default function Study() {
7772

7873
const [postSearch] = osrdEditoastApi.endpoints.postSearch.useMutation();
7974

80-
const { data: scenariosV1 } =
81-
osrdEditoastApi.endpoints.getProjectsByProjectIdStudiesAndStudyIdScenarios.useQuery(
82-
{
83-
projectId: projectId!,
84-
studyId: studyId!,
85-
ordering: sortOption,
86-
pageSize: 1000,
87-
},
88-
{ skip: !projectId || !studyId }
89-
);
90-
9175
const { data: scenariosV2 } =
9276
osrdEditoastApi.endpoints.getV2ProjectsByProjectIdStudiesAndStudyIdScenarios.useQuery(
9377
{
@@ -156,8 +140,7 @@ export default function Study() {
156140
console.error(error);
157141
}
158142
} else {
159-
const scenarios = useTrainScheduleV2 ? scenariosV2?.results : scenariosV1?.results;
160-
setScenariosList(scenarios || []);
143+
setScenariosList(scenariosV2?.results || []);
161144
}
162145
setIsLoading(false);
163146
}
@@ -188,7 +171,7 @@ export default function Study() {
188171

189172
useEffect(() => {
190173
getScenarioList();
191-
}, [sortOption, filter, scenariosV1, scenariosV2, useTrainScheduleV2]);
174+
}, [sortOption, filter, scenariosV2]);
192175

193176
return (
194177
<>

front/src/applications/stdcm/hooks/useStdcm.ts

+5-103
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
import { useState } from 'react';
22

3-
import { cloneDeep } from 'lodash';
43
import { useTranslation } from 'react-i18next';
54
import nextId from 'react-id-generator';
65
import { useSelector } from 'react-redux';
76

87
import type { ManageTrainSchedulePathProperties } from 'applications/operationalStudies/types';
98
import { STDCM_REQUEST_STATUS, STDCM_TRAIN_ID } from 'applications/stdcm/consts';
10-
import formatStdcmConf from 'applications/stdcm/formatStdcmConf';
119
import type { StdcmRequestStatus, StdcmV2SuccessResponse } from 'applications/stdcm/types';
1210
import { osrdEditoastApi } from 'common/api/osrdEditoastApi';
13-
import type {
14-
SimulationReport,
15-
PostStdcmApiResponse,
16-
TrainScheduleResult,
17-
} from 'common/api/osrdEditoastApi';
18-
import { useOsrdConfActions, useOsrdConfSelectors } from 'common/osrdContext';
11+
import type { TrainScheduleResult } from 'common/api/osrdEditoastApi';
12+
import { useOsrdConfSelectors } from 'common/osrdContext';
1913
import { useStoreDataForSpeedLimitByTagSelector } from 'common/SpeedLimitByTagSelector/useStoreDataForSpeedLimitByTagSelector';
2014
import createTrain from 'modules/simulationResult/components/SpaceTimeChart/createTrain';
2115
import { CHART_AXES } from 'modules/simulationResult/consts';
@@ -25,10 +19,7 @@ import {
2519
updateConsolidatedSimulation,
2620
updateSelectedTrainId,
2721
updateSimulation,
28-
updateSelectedProjection,
2922
} from 'reducers/osrdsimulation/actions';
30-
import type { Train } from 'reducers/osrdsimulation/types';
31-
import { getStdcmV2Activated, getTrainScheduleV2Activated } from 'reducers/user/userSelectors';
3223
import { useAppDispatch } from 'store';
3324
import { castErrorToFailure } from 'utils/error';
3425

@@ -37,7 +28,6 @@ import { checkStdcmConf, formatStdcmPayload } from '../utils/formatStdcmConfV2';
3728

3829
const useStdcm = () => {
3930
const [stdcmTrainResult, setStdcmTrainResult] = useState<TrainScheduleResult>();
40-
const [stdcmResults, setStdcmResults] = useState<PostStdcmApiResponse>();
4131
const [stdcmV2Response, setStdcmV2Response] = useState<StdcmV2SuccessResponse>();
4232
const [currentStdcmRequestStatus, setCurrentStdcmRequestStatus] = useState<StdcmRequestStatus>(
4333
STDCM_REQUEST_STATUS.idle
@@ -48,107 +38,29 @@ const useStdcm = () => {
4838
const { t } = useTranslation(['translation', 'stdcm']);
4939
const { getConf, getTimetableID } = useOsrdConfSelectors();
5040
const osrdconf = useSelector(getConf);
51-
const trainScheduleV2Activated = useSelector(getTrainScheduleV2Activated);
52-
const stdcmV2Activated = useSelector(getStdcmV2Activated);
5341
const timetableId = useSelector(getTimetableID);
5442

5543
const stdcmV2Results = useStdcmResults(stdcmV2Response, stdcmTrainResult, setPathProperties);
5644

57-
const [postStdcm] = osrdEditoastApi.endpoints.postStdcm.useMutation();
5845
const [postV2TimetableByIdStdcm] =
5946
osrdEditoastApi.endpoints.postV2TimetableByIdStdcm.useMutation();
60-
const [postTrainScheduleResults] =
61-
osrdEditoastApi.endpoints.postTrainScheduleResults.useMutation();
62-
63-
const [getTimetable] = osrdEditoastApi.endpoints.getTimetableById.useLazyQuery();
6447

6548
const { data: stdcmRollingStock } =
6649
osrdEditoastApi.endpoints.getLightRollingStockByRollingStockId.useQuery(
6750
{
6851
rollingStockId: osrdconf.rollingStockID as number,
6952
},
70-
{ skip: !osrdconf.rollingStockID && !trainScheduleV2Activated }
53+
{ skip: !osrdconf.rollingStockID }
7154
);
7255

73-
const { updateItinerary } = useOsrdConfActions();
74-
7556
// https://developer.mozilla.org/en-US/docs/Web/API/AbortController
7657
const controller = new AbortController();
7758

78-
const { timetableID } = osrdconf;
79-
8059
const { speedLimitByTag } = useStoreDataForSpeedLimitByTagSelector();
8160

82-
const resetResults = () => {
83-
dispatch(updateSelectedTrainId(undefined));
84-
dispatch(updateConsolidatedSimulation([]));
85-
dispatch(updateSimulation({ trains: [] }));
86-
setStdcmResults(undefined);
87-
};
88-
89-
const launchStdcmRequestV1 = async () => {
90-
const payload = formatStdcmConf(dispatch, t, osrdconf as OsrdStdcmConfState);
91-
if (payload && timetableID) {
92-
resetResults();
93-
postStdcm(payload)
94-
.unwrap()
95-
.then((result) => {
96-
setCurrentStdcmRequestStatus(STDCM_REQUEST_STATUS.success);
97-
setStdcmResults(result);
98-
dispatch(updateItinerary(result.path));
99-
100-
const fakedNewTrain = {
101-
...cloneDeep(result.simulation),
102-
id: STDCM_TRAIN_ID,
103-
isStdcm: true,
104-
};
105-
getTimetable({ id: timetableID }).then(({ data: timetable }) => {
106-
const trainIdsToFetch =
107-
timetable?.train_schedule_summaries.map((train) => train.id) ?? [];
108-
postTrainScheduleResults({
109-
body: {
110-
path_id: result.path.id,
111-
train_ids: trainIdsToFetch,
112-
},
113-
})
114-
.unwrap()
115-
.then((timetableTrains) => {
116-
const trains: SimulationReport[] = [...timetableTrains.simulations, fakedNewTrain];
117-
const consolidatedSimulation = createTrain(
118-
CHART_AXES.SPACE_TIME,
119-
trains as Train[] // TODO: remove Train interface
120-
);
121-
dispatch(updateConsolidatedSimulation(consolidatedSimulation));
122-
dispatch(updateSimulation({ trains }));
123-
dispatch(updateSelectedTrainId(fakedNewTrain.id));
124-
125-
dispatch(
126-
updateSelectedProjection({
127-
id: fakedNewTrain.id,
128-
path: result.path.id,
129-
})
130-
);
131-
})
132-
.catch((e) => {
133-
dispatch(
134-
setFailure(
135-
castErrorToFailure(e, {
136-
name: t('stdcm:stdcmError'),
137-
message: t('translation:common.error'),
138-
})
139-
)
140-
);
141-
});
142-
});
143-
})
144-
.catch((e) => {
145-
setCurrentStdcmRequestStatus(STDCM_REQUEST_STATUS.rejected);
146-
dispatch(setFailure(castErrorToFailure(e, { name: t('stdcm:stdcmError') })));
147-
});
148-
}
149-
};
61+
const launchStdcmRequest = async () => {
62+
setCurrentStdcmRequestStatus(STDCM_REQUEST_STATUS.pending);
15063

151-
const launchStdcmRequestV2 = async () => {
15264
const validConfig = checkStdcmConf(dispatch, t, osrdconf as OsrdStdcmConfState);
15365
if (validConfig) {
15466
const payload = formatStdcmPayload(validConfig);
@@ -197,15 +109,6 @@ const useStdcm = () => {
197109
}
198110
};
199111

200-
const launchStdcmRequest = async () => {
201-
setCurrentStdcmRequestStatus(STDCM_REQUEST_STATUS.pending);
202-
if (trainScheduleV2Activated || stdcmV2Activated) {
203-
launchStdcmRequestV2();
204-
} else {
205-
launchStdcmRequestV1();
206-
}
207-
};
208-
209112
const cancelStdcmRequest = () => {
210113
// when http ready https://axios-http.com/docs/cancellation
211114

@@ -221,7 +124,6 @@ const useStdcm = () => {
221124
const isPending = currentStdcmRequestStatus === STDCM_REQUEST_STATUS.pending;
222125

223126
return {
224-
stdcmResults,
225127
stdcmV2Results,
226128
launchStdcmRequest,
227129
currentStdcmRequestStatus,

front/src/applications/stdcm/views/StdcmConfig.tsx

+12-30
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,23 @@ import type { ManageTrainSchedulePathProperties } from 'applications/operational
88
import RunningTime from 'applications/stdcm/components/RunningTime';
99
import { STDCM_REQUEST_STATUS } from 'applications/stdcm/consts';
1010
import type { StdcmV2Results } from 'applications/stdcm/types';
11-
import StdcmResults from 'applications/stdcm/views/StdcmResults';
12-
import { osrdEditoastApi, type PostStdcmApiResponse } from 'common/api/osrdEditoastApi';
11+
import { osrdEditoastApi } from 'common/api/osrdEditoastApi';
1312
import { useInfraID, useOsrdConfSelectors } from 'common/osrdContext';
1413
import SpeedLimitByTagSelector from 'common/SpeedLimitByTagSelector/SpeedLimitByTagSelector';
1514
import { useStoreDataForSpeedLimitByTagSelector } from 'common/SpeedLimitByTagSelector/useStoreDataForSpeedLimitByTagSelector';
16-
import Itinerary from 'modules/pathfinding/components/Itinerary/Itinerary';
1715
import ItineraryV2 from 'modules/pathfinding/components/Itinerary/ItineraryV2';
1816
import { RollingStockSelector } from 'modules/rollingStock/components/RollingStockSelector';
1917
import { useStoreDataForRollingStockSelector } from 'modules/rollingStock/components/RollingStockSelector/useStoreDataForRollingStockSelector';
2018
import ScenarioExplorer from 'modules/scenario/components/ScenarioExplorer';
2119
import StdcmAllowances from 'modules/stdcmAllowances/components/StdcmAllowances';
2220
import { Map } from 'modules/trainschedule/components/ManageTrainSchedule';
2321
import type { OsrdStdcmConfState } from 'reducers/osrdconf/types';
24-
import { getTrainScheduleV2Activated } from 'reducers/user/userSelectors';
2522

2623
import StdcmResultsV2 from './StdcmResultsV2';
2724

2825
type OSRDStdcmConfigProps = {
2926
currentStdcmRequestStatus: string;
3027
launchStdcmRequest: () => Promise<void>;
31-
stdcmResults?: PostStdcmApiResponse;
3228
stdcmV2Results?: StdcmV2Results | null;
3329
pathProperties?: ManageTrainSchedulePathProperties;
3430
setPathProperties: (pathProperties?: ManageTrainSchedulePathProperties) => void;
@@ -37,7 +33,6 @@ type OSRDStdcmConfigProps = {
3733
const StdcmConfig = ({
3834
currentStdcmRequestStatus,
3935
launchStdcmRequest,
40-
stdcmResults,
4136
stdcmV2Results,
4237
pathProperties,
4338
setPathProperties,
@@ -55,7 +50,6 @@ const StdcmConfig = ({
5550
const studyID = useSelector(getStudyID);
5651
const scenarioID = useSelector(getScenarioID);
5752
const timetableID = useSelector(getTimetableID);
58-
const trainScheduleV2Activated = useSelector(getTrainScheduleV2Activated);
5953
const originV2 = useSelector(getOriginV2);
6054
const destinationV2 = useSelector(getDestinationV2);
6155
const infraID = useInfraID();
@@ -83,12 +77,9 @@ const StdcmConfig = ({
8377
);
8478

8579
const disabledApplyButton = useMemo(() => {
86-
if (trainScheduleV2Activated) {
87-
if (!originV2 || !destinationV2 || !osrdconf.originDate || !osrdconf.destinationDate)
88-
return true;
89-
} else if (!osrdconf.origin || !osrdconf.destination) {
80+
if (!originV2 || !destinationV2 || !osrdconf.originDate || !osrdconf.destinationDate)
9081
return true;
91-
}
82+
9283
return (
9384
infra?.state !== 'CACHED' ||
9485
!(osrdconf.originTime || osrdconf.destinationTime) ||
@@ -138,15 +129,13 @@ const StdcmConfig = ({
138129
speedLimitsByTags={speedLimitsByTags}
139130
dispatchUpdateSpeedLimitByTag={dispatchUpdateSpeedLimitByTag}
140131
/>
141-
{trainScheduleV2Activated ? (
142-
<ItineraryV2
143-
pathProperties={pathProperties}
144-
setPathProperties={setPathProperties}
145-
shouldManageStopDuration
146-
/>
147-
) : (
148-
<Itinerary />
149-
)}
132+
133+
<ItineraryV2
134+
pathProperties={pathProperties}
135+
setPathProperties={setPathProperties}
136+
shouldManageStopDuration
137+
/>
138+
150139
<RunningTime />
151140
<StdcmAllowances />
152141
<div className="osrd-config-stdcm-apply">
@@ -195,15 +184,8 @@ const StdcmConfig = ({
195184
)}
196185
</div>
197186
</div>
198-
{!trainScheduleV2Activated && rollingStock && stdcmResults && (
199-
<StdcmResults
200-
mapCanvas={mapCanvas}
201-
stdcmResults={stdcmResults}
202-
rollingStockData={rollingStock}
203-
speedLimitByTag={speedLimitByTag}
204-
/>
205-
)}
206-
{trainScheduleV2Activated && rollingStock && stdcmV2Results && (
187+
188+
{rollingStock && stdcmV2Results && (
207189
<StdcmResultsV2
208190
mapCanvas={mapCanvas}
209191
stdcmV2Results={stdcmV2Results}

front/src/applications/stdcm/views/StdcmViewV1.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ const StdcmViewV1 = () => {
1212
const dispatch = useAppDispatch();
1313

1414
const {
15-
stdcmResults,
1615
stdcmV2Results,
1716
launchStdcmRequest,
1817
currentStdcmRequestStatus,
@@ -34,7 +33,6 @@ const StdcmViewV1 = () => {
3433
<StdcmConfig
3534
currentStdcmRequestStatus={currentStdcmRequestStatus}
3635
launchStdcmRequest={launchStdcmRequest}
37-
stdcmResults={stdcmResults}
3836
stdcmV2Results={stdcmV2Results}
3937
pathProperties={pathProperties}
4038
setPathProperties={setPathProperties}

0 commit comments

Comments
 (0)