Skip to content

Commit 4a769b0

Browse files
authored
Merge pull request #23 from Ivareh/21-add-option-to-deactivate-a-query-for-execution
#21 dol: Added active button and state to query
2 parents 1cb5057 + 7649e1a commit 4a769b0

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

db-optimize-logger/app/execute/query_handler.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class Query(BaseModel):
3636
sql: str = Field(min_length=1)
3737
repeat: int | None
3838
query_count: bool
39+
active: bool = True # Whether to execute query or not
3940

4041
@property
4142
def statement(self) -> TextClause:
@@ -84,6 +85,7 @@ def read_queries_saves_df() -> pd.DataFrame:
8485
"sql": "string",
8586
"repeat": "Int64",
8687
"query_count": "boolean",
88+
"active": "boolean",
8789
},
8890
)
8991
saves_df["repeat"] = saves_df["repeat"].fillna(0).astype("int64")
@@ -124,6 +126,7 @@ def find_query(id: str) -> Query:
124126
sql=id_existing_index["sql"].values[0],
125127
repeat=id_existing_index["repeat"].values[0],
126128
query_count=id_existing_index["query_count"].values[0],
129+
active=id_existing_index["active"].values[0],
127130
)
128131

129132

@@ -150,7 +153,9 @@ def save_query(query: Query) -> None:
150153
try:
151154
saves_df = read_queries_saves_df()
152155
except NoQueriesFoundError:
153-
cols = pd.Index(["id", "database_ids", "name", "sql", "repeat", "query_count"])
156+
cols = pd.Index(
157+
["id", "database_ids", "name", "sql", "repeat", "query_count", "active"]
158+
)
154159
saves_df = pd.DataFrame(columns=cols)
155160
saves_df.to_csv(QUERIES_SAVES_CSV, index=False)
156161
query_dump = query.model_dump()
@@ -205,6 +210,9 @@ def process_queries(queries: pd.DataFrame) -> None:
205210
"This function is crap and needs to be refactored and more tidy"
206211

207212
for index, (_, query_row) in enumerate(queries.iterrows(), start=1):
213+
if not query_row.active:
214+
continue
215+
208216
database_ids = parse_database_ids(query_row.database_ids)
209217
db_instances: list[DatabaseInstance] = []
210218
for db_id in database_ids:

db-optimize-logger/app/ui/components/query.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ def _saved_queries_ui(queries: QueryList, databases: list[str]):
3838
for query in queries.items:
3939
with ui.column().classes("w-full items-stretch border rounded p-4 mb-4 gap-4"):
4040
with ui.row().classes("w-full items-center gap-2"):
41+
ui.checkbox("Active", value=query.active).classes(
42+
"flex-grow w-[160px]"
43+
).bind_value(query, "active")
4144
ui.input("Query name", value=query.name).classes(
4245
"flex-grow w-full"
4346
).bind_value(query, "name")
@@ -100,6 +103,7 @@ def _add_query_handler(
100103
sql=add_sql.value,
101104
repeat=add_repeat.value,
102105
query_count=add_query_count.value,
106+
active=True,
103107
)
104108

105109
# Save in csv and add to UI
@@ -175,6 +179,7 @@ def process_query(query_row):
175179
"sql": query_row["sql"],
176180
"repeat": query_row["repeat"],
177181
"query_count": bool(query_row["query_count"]),
182+
"active": bool(query_row["active"]),
178183
}
179184
db_query = Query(**db_query_dict)
180185
queries.add(db_query)

0 commit comments

Comments
 (0)