I can run simple workflow
This commit is contained in:
@@ -184,11 +184,13 @@ class WorkflowDesigner(BaseComponent):
|
||||
WorkflowPlayer,
|
||||
settings_manager=self._settings_manager,
|
||||
tabs_manager=self.tabs_manager,
|
||||
player_settings=WorkflowsPlayerSettings(workflow_name),
|
||||
player_settings=WorkflowsPlayerSettings(workflow_name,
|
||||
list(self._state.components.values())),
|
||||
boundaries=boundaries)
|
||||
|
||||
player.run()
|
||||
|
||||
self.tabs_manager.add_tab(f"Workflow {workflow_name}", player, player.key)
|
||||
# player.start(self._state.selected_component_id)
|
||||
return self.tabs_manager.refresh()
|
||||
|
||||
def on_processor_details_event(self, component_id: str, event_name: str, details: dict):
|
||||
@@ -436,9 +438,9 @@ class WorkflowDesigner(BaseComponent):
|
||||
Fieldset(
|
||||
Legend("Presenter", cls="fieldset-legend"),
|
||||
Input(type="text",
|
||||
name="presenter",
|
||||
value=component.properties.get("filter", ""),
|
||||
placeholder="Enter filter expression",
|
||||
name="columns",
|
||||
value=component.properties.get("columns", ""),
|
||||
placeholder="Columns to display, separated by comma",
|
||||
cls="input w-full"),
|
||||
P("Comma separated list of columns to display. Use * to display all columns, source=dest to rename columns."),
|
||||
cls="fieldset bg-base-200 border-base-300 rounded-box border p-4"
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import pandas as pd
|
||||
from fasthtml.components import *
|
||||
|
||||
from components.BaseComponent import BaseComponent
|
||||
from components.datagrid_new.components.DataGrid import DataGrid
|
||||
from components.datagrid_new.settings import DataGridSettings
|
||||
from components.workflows.commands import WorkflowPlayerCommandManager
|
||||
from components.workflows.constants import WORKFLOW_PLAYER_INSTANCE_ID
|
||||
from components.workflows.constants import WORKFLOW_PLAYER_INSTANCE_ID, ProcessorTypes
|
||||
from components.workflows.db_management import WorkflowsPlayerSettings
|
||||
from core.utils import get_unique_id, make_safe_id
|
||||
from workflow.engine import WorkflowEngine, TableDataProducer, DefaultDataPresenter
|
||||
|
||||
grid_settings = DataGridSettings(
|
||||
header_visible=True,
|
||||
@@ -36,6 +38,20 @@ class WorkflowPlayer(BaseComponent):
|
||||
grid_settings=grid_settings,
|
||||
boundaries=boundaries)
|
||||
|
||||
def run(self):
|
||||
engine = WorkflowEngine()
|
||||
for component in self._player_settings.components:
|
||||
if component.type == ProcessorTypes.Producer and component.properties["processor_name"] == "Repository":
|
||||
engine.add_processor(TableDataProducer(self._session, self._settings_manager, component.properties["repository"], component.properties["table"]))
|
||||
elif component.type == ProcessorTypes.Presenter and component.properties["processor_name"] == "Default":
|
||||
engine.add_processor(DefaultDataPresenter(component.properties["columns"]))
|
||||
|
||||
res = engine.run_to_list()
|
||||
|
||||
data = [row.as_dict() for row in res]
|
||||
df = pd.DataFrame(data)
|
||||
self._datagrid.init_from_dataframe(df)
|
||||
|
||||
def __ft__(self):
|
||||
return Div(
|
||||
self._datagrid,
|
||||
|
||||
@@ -44,6 +44,7 @@ class WorkflowsDesignerState:
|
||||
@dataclass
|
||||
class WorkflowsPlayerSettings:
|
||||
workflow_name: str = "No Name"
|
||||
components: list[WorkflowComponent] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
Reference in New Issue
Block a user