Skip to content

Commit

Permalink
draft for Samir
Browse files Browse the repository at this point in the history
  • Loading branch information
MartinBelthle committed Jan 20, 2025
1 parent 9a80aed commit fe1c04c
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 96 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ import {
import { capitalize } from "lodash";
import NumberFE from "../../../../../common/fieldEditors/NumberFE";
import { useFormContextPlus } from "../../../../../common/Form";
import { TSFormFields, TSType } from "./utils";
import type { TSConfigDTO, TSType } from "@/services/api/studies/timeseries/types.ts";
import BooleanFE from "../../../../../common/fieldEditors/BooleanFE";
import { useTranslation } from "react-i18next";
import { validateNumber } from "@/utils/validation/number";

const borderStyle = "1px solid rgba(255, 255, 255, 0.12)";

function Fields() {
const { control, watch } = useFormContextPlus<TSFormFields>();
const { control, watch } = useFormContextPlus<TSConfigDTO>();
const isReadyMade = watch("thermal.stochasticTsStatus") === false;
const { t } = useTranslation();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,26 @@ import type {
UseFormReturnPlus,
} from "../../../../../common/Form/types";
import Fields from "./Fields";
import { DEFAULT_VALUES, setTimeSeriesFormFields, TSFormFields } from "./utils";
import { useTranslation } from "react-i18next";
import usePromiseHandler from "../../../../../../hooks/usePromiseHandler";
import { generateTimeSeries } from "../../../../../../services/api/studies/timeseries";
import BuildIcon from "@mui/icons-material/Build";
import { useRef, useState } from "react";
import {setTimeSeriesConfig, generateTimeSeries} from "@/services/api/studies/timeseries";
import type {TSConfigDTO} from "@/services/api/studies/timeseries/types.ts";
import {DeepPartial} from "react-hook-form";

export const DEFAULT_VALUES: DeepPartial<TSConfigDTO> = {
thermal: {
number: 1,
},
};


function TimeSeriesManagement() {
const { study } = useOutletContext<{ study: StudyMetadata }>();
const { t } = useTranslation();
const [launchTaskInProgress, setLaunchTaskInProgress] = useState(false);
const apiRef = useRef<UseFormReturnPlus<TSFormFields>>(null);
const apiRef = useRef<UseFormReturnPlus<TSConfigDTO>>(null);

const handleGenerateTs = usePromiseHandler({
fn: generateTimeSeries,
Expand All @@ -43,8 +51,8 @@ function TimeSeriesManagement() {
// Event Handlers
////////////////////////////////////////////////////////////////

const handleSubmit = (data: SubmitHandlerPlus<TSFormFields>) => {
return setTimeSeriesFormFields(study.id, data.values);
const handleSubmit = (data: SubmitHandlerPlus<TSConfigDTO>) => {
return setTimeSeriesConfig({studyId: study.id, values: data.values});
};

const handleSubmitSuccessful = async () => {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
* This file is part of the Antares project.
*/

import { StudyMetadata } from "../../../common/types";
import client from "../client";
import { StudyMetadata } from "../../../../common/types.ts";
import client from "../../client.ts";
import type {SetTimeSeriesConfigParams} from "@/services/api/studies/timeseries/types.ts";

/**
* Launches time series generation task for the specified study.
Expand All @@ -30,3 +31,10 @@ export async function generateTimeSeries(params: {
);
return data;
}


export async function setTimeSeriesConfig(
{studyId, values}: SetTimeSeriesConfigParams
) {
await client.put(`v1/studies/${studyId}/timeseries/config`, values);
}
33 changes: 33 additions & 0 deletions webapp/src/services/api/studies/timeseries/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/**
* Copyright (c) 2024, RTE (https://www.rte-france.com)
*
* See AUTHORS.txt
*
* This Source Code Form is subject to the terms of the Mozilla Public
* 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/.
*
* SPDX-License-Identifier: MPL-2.0
*
* This file is part of the Antares project.
*/
import {StudyMetadata} from "@/common/types.ts";
import {DeepPartial} from "react-hook-form";

export enum TSType {
Thermal = "thermal"
}

interface TSConfigFields {
number: number;
}

export interface TSConfigDTO
{
[TSType.Thermal]: TSConfigFields;
}

export interface SetTimeSeriesConfigParams {
studyId: StudyMetadata["id"],
values: DeepPartial<TSConfigDTO>,
}

0 comments on commit fe1c04c

Please sign in to comment.