Added columns values in suggestion + fixed commands key conflicts bug

This commit is contained in:
2026-02-08 22:44:06 +01:00
parent d44e0a0c01
commit 0119f54f11
10 changed files with 127 additions and 15 deletions

View File

@@ -1,3 +1,5 @@
import logging
from fasthtml.components import Div
from myfasthtml.controls.BaseCommands import BaseCommands
@@ -6,6 +8,7 @@ from myfasthtml.core.commands import Command
from myfasthtml.core.dbmanager import DbObject
from myfasthtml.core.instances import MultipleInstance
logger = logging.getLogger("CycleStateControl")
class CycleState(DbObject):
def __init__(self, owner, save_state):
@@ -24,7 +27,7 @@ class Commands(BaseCommands):
class CycleStateControl(MultipleInstance):
def __init__(self, parent, controls: dict, _id=None, save_state=True):
super().__init__(parent, _id)
super().__init__(parent, _id=_id)
self._state = CycleState(self, save_state)
self.controls_by_states = controls
self.commands = Commands(self)
@@ -34,6 +37,7 @@ class CycleStateControl(MultipleInstance):
self._state.state = next(iter(controls.keys()))
def cycle_state(self):
logger.debug(f"cycle_state datagrid={self._parent.get_table_name()}")
keys = list(self.controls_by_states.keys())
current_idx = keys.index(self._state.state)
self._state.state = keys[(current_idx + 1) % len(keys)]

View File

@@ -203,7 +203,10 @@ class DataGrid(MultipleInstance):
"column": mk.icon(column, tooltip="Column selection"),
"cell": mk.icon(grid, tooltip="Cell selection")
}
self._selection_mode_selector = CycleStateControl(self, controls=selection_types, save_state=False)
self._selection_mode_selector = CycleStateControl(self,
controls=selection_types,
save_state=False,
_id="-cycle_state")
self._selection_mode_selector.bind_command("CycleState", self.commands.change_selection_mode())
# add columns manager

View File

@@ -167,9 +167,12 @@ class DataGridsManager(SingleInstance, DatagridMetadataProvider):
def list_column_values(self, table_name, column_name):
return self._registry.get_column_values(table_name, column_name)
def get_row_count(self, table_name):
return self._registry.get_row_count(table_name)
def get_column_type(self, table_name, column_name):
return self._registry.get_column_type(table_name, column_name)
def list_style_presets(self) -> list[str]:
return list(self.style_presets.keys())