From 564866393f628f871e58db478d59f51e1f75ec5b Mon Sep 17 00:00:00 2001 From: IDONTSUDO Date: Sun, 2 Feb 2025 20:28:05 +0300 Subject: [PATCH] progress --- .../core/scenarios/create_intance_scenario.ts | 5 ++-- .../domain/exec_instance_scenario.ts | 3 +- .../model/form_builder_validation_model.tsx | 3 ++ .../model/select_process_model.ts | 14 ++++++++-- .../presentation/select_process.tsx | 28 ++++++++++++------- .../calculation_instance_screen.tsx | 11 +++++--- .../calculation_instance_store.tsx | 2 +- 7 files changed, 43 insertions(+), 23 deletions(-) diff --git a/server/src/core/scenarios/create_intance_scenario.ts b/server/src/core/scenarios/create_intance_scenario.ts index 53b98fe..9df5453 100644 --- a/server/src/core/scenarios/create_intance_scenario.ts +++ b/server/src/core/scenarios/create_intance_scenario.ts @@ -7,9 +7,8 @@ export abstract class CreateInstanceScenario extends Callbac abstract validationModel: V; abstract databaseModel: any; call = async (model: V): ResponseBase => { - model.instancePath = `${model.path}/${model.instanceName}`; - console.log("INSTANCE PATh"); - console.log(model.instancePath) + model.instancePath = `${model.path.pathNormalize()}/${model.instanceName}`.pathNormalize(); + model.path = model.path.pathNormalize(); return (await new CreateFolderUseCase().call(model.instancePath)).map( async () => await new CreateDataBaseModelUseCase(this.databaseModel).call(model) ); diff --git a/server/src/features/digital_twins_instance/domain/exec_instance_scenario.ts b/server/src/features/digital_twins_instance/domain/exec_instance_scenario.ts index f4ec799..5171e07 100644 --- a/server/src/features/digital_twins_instance/domain/exec_instance_scenario.ts +++ b/server/src/features/digital_twins_instance/domain/exec_instance_scenario.ts @@ -21,8 +21,7 @@ export class ExecInstanceScenario extends CallbackStrategyWithIdQuery { await new ReadByIdDataBaseModelUseCase(DigitalTwinsInstanceDatabaseModel).call(id) ).map( (document) => ( - console.log('DOCUMeNT PATH'), - console.log(document.instancePath.pathNormalize()), + new ExecProcessUseCase().call( document.instancePath, `python3 $GET_INTERFACES --path ${document.instancePath.pathNormalize()} --package '${JSON.stringify( diff --git a/ui/src/core/model/form_builder_validation_model.tsx b/ui/src/core/model/form_builder_validation_model.tsx index 3f06c9a..4f1837b 100644 --- a/ui/src/core/model/form_builder_validation_model.tsx +++ b/ui/src/core/model/form_builder_validation_model.tsx @@ -139,3 +139,6 @@ export const ff1Result = `{ "empty":\${NAME:string:default}, "params": \${ITEM:Array:[]} }`; +// { +// "process":\${:OBJECT:{"type": "OBJECT_DETECTION"} +// } \ No newline at end of file diff --git a/ui/src/core/ui/form_builder/forms/select_dataset/model/select_process_model.ts b/ui/src/core/ui/form_builder/forms/select_dataset/model/select_process_model.ts index 2dd31a3..f6e8ca1 100644 --- a/ui/src/core/ui/form_builder/forms/select_dataset/model/select_process_model.ts +++ b/ui/src/core/ui/form_builder/forms/select_dataset/model/select_process_model.ts @@ -1,10 +1,18 @@ import { IsObject, IsString } from "class-validator"; import { ValidationModel } from "../../../../../model/validation_model"; +import { CalculationModel } from "../../../../../../features/calculation_instance/model/calculation_model"; export class SelectProcessModel extends ValidationModel { @IsString() - type: string; + type: string = ''; @IsObject() - selectProcess?: any; -} \ No newline at end of file + selectProcess?: SelectProcess; +} + + + +export interface SelectProcess { + value: CalculationModel; +} + \ No newline at end of file diff --git a/ui/src/core/ui/form_builder/forms/select_dataset/presentation/select_process.tsx b/ui/src/core/ui/form_builder/forms/select_dataset/presentation/select_process.tsx index e05ed8b..cc732fb 100644 --- a/ui/src/core/ui/form_builder/forms/select_dataset/presentation/select_process.tsx +++ b/ui/src/core/ui/form_builder/forms/select_dataset/presentation/select_process.tsx @@ -8,12 +8,18 @@ import { SelectProcessModel } from "../model/select_process_model"; import { Loader } from "../../../../loader/loader"; import { CoreSelect } from "../../../../select/select"; import { message } from "antd"; +import { CalculationModel } from "../../../../../../features/calculation_instance/model/calculation_model"; -export const SelectProcess = observer((props: IFormBuilderComponentsProps) => { +export const SelectProcess = observer((props: IFormBuilderComponentsProps) => { const [store] = useState(new SelectProcessStore()); useEffect(() => { - console.log(props.dependency) - store.loadClassInstance(SelectProcessModel, props.dependency); + console.log(props.dependency); + if (typeof props.dependency === "string") { + store.loadClassInstance(SelectProcessModel, JSON.parse(props.dependency)); + } else { + store.loadClassInstance(SelectProcessModel, props.dependency); + } + store.init(); }, []); return ( @@ -23,16 +29,18 @@ export const SelectProcess = observer((props: IFormBuilderComponentsProps) ) : (
el.name)} - value={store.viewModel?.selectProcess?.name ?? ""} - label={`Процесс тип ${store.viewModel?.type}`} - onChange={async (value: string, index: number) => ( - store.updateForm({ selectProcess: store.calculationInstances.atR(index).map((el) => el) }), + items={store.calculationInstances.map((el) => el.instanceName)} + value={store.viewModel?.selectProcess?.value.instanceName ?? ""} + label={`Процесс тип ${store?.viewModel?.type ?? ""}`} + onChange={async (value: string, index: number) => { + store.updateForm({ + selectProcess: { value: store.calculationInstances.at(index) ?? CalculationModel.empty() }, + }); (await store.viewModel.valid()).fold( (model) => props.onChange(model), (error) => message.error(error) - ) - )} + ); + }} />
)} diff --git a/ui/src/features/calculation_instance/presentation/calculation_instance_screen.tsx b/ui/src/features/calculation_instance/presentation/calculation_instance_screen.tsx index 859ba70..33eeb39 100644 --- a/ui/src/features/calculation_instance/presentation/calculation_instance_screen.tsx +++ b/ui/src/features/calculation_instance/presentation/calculation_instance_screen.tsx @@ -60,7 +60,7 @@ export const CalculationInstanceScreen = observer(() => { () => store.deleteInstance(el._id ?? ""), () => store.execSkill(el._id ?? ""), () => store.execSkill(el._id ?? ""), - () => store.changeProcessStatus(el._id ?? ''), + () => store.changeProcessStatus(el._id ?? "") )} ); @@ -94,7 +94,10 @@ export const CalculationInstanceScreen = observer(() => {
store.updateForm({ formBuilder: formBuilder })} + onChange={(formBuilder) => { + console.log(formBuilder); + store.updateForm({ formBuilder: formBuilder }); + }} />
@@ -151,7 +154,7 @@ export const CalculationInstanceScreen = observer(() => { store.updateForm({ script: text.replaceAll("\n", "") })} + onChange={(text) => store.updateForm({ script: text.replaceAll("\n", "") })} /> { store.isModalOpen = false; }} > - {}} /> + {}} /> ); diff --git a/ui/src/features/calculation_instance/presentation/calculation_instance_store.tsx b/ui/src/features/calculation_instance/presentation/calculation_instance_store.tsx index fa5fad8..cb9f0dd 100644 --- a/ui/src/features/calculation_instance/presentation/calculation_instance_store.tsx +++ b/ui/src/features/calculation_instance/presentation/calculation_instance_store.tsx @@ -129,7 +129,7 @@ export class CalculationInstanceStore extends UiDrawerFormState { this.editDrawer(DrawersSkill.EDIT_SKILL, false); (await this.viewModel.valid()).fold( - async (model) => await this.calculationHttpRepository.editCalculation(model), + async (model) => (await this.calculationHttpRepository.editCalculation(model), await this.init()), async (err) => message.error(err) ); };