aboutsummaryrefslogtreecommitdiffstats
path: root/browser/app.py
diff options
context:
space:
mode:
Diffstat (limited to 'browser/app.py')
-rw-r--r--browser/app.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/browser/app.py b/browser/app.py
index 659e7a5..be79432 100644
--- a/browser/app.py
+++ b/browser/app.py
@@ -180,6 +180,39 @@ def query_range():
rows = rows,
)
+@app.post("/delete")
+def query_delete():
+ field = request.form.get("field")
+ if not field: raise ValueError("Field is required")
+
+ value = request.form.get("value")
+ if not value: raise ValueError("Value is required")
+
+ field_index = db_fields.index(field)
+ if field_index == -1: raise ValueError(f"Field '{field}' not found")
+
+ try:
+ value = cast_to_value(field, value)
+ except ValueError as e:
+ return error(str(e), 400)
+
+ rows = db.delete_by(field, cast(Value, value))
+ rows = [[value_to_str(v) for v in row] for row in rows]
+
+ htmp_target = request.form.get("htmp") or request.args.get("htmp")
+ if htmp_target:
+ return render_template("frag_results.html.j2",
+ field_names = ["id", "name"],
+ rows = rows,
+ )
+ else:
+ return render_template('page_main.html.j2',
+ selected_form = "frag_form_delete.html.j2",
+ field_names = ["id", "name"],
+ rows = rows,
+ )
+
+
# Utils
def cast_to_value(field: str, str_value: str) -> Value | None: