From 7d524ffb5709c7f38ce4ffd5db3235bd2cbc9cb9 Mon Sep 17 00:00:00 2001 From: Munyoki Kilyungi Date: Tue, 2 Apr 2024 12:25:35 +0300 Subject: Display a history page containing all the edits. * gn2/wqflask/edit.py (__fetch_dataset_git_history__): New function. (view_history): New end-point. * gn2/wqflask/templates/dataset.html: Use htmx to fetch history. * gn2/wqflask/templates/dataset_history.html: New history page. Signed-off-by: Munyoki Kilyungi --- gn2/wqflask/edit.py | 38 +++++++++++++++++++++++ gn2/wqflask/templates/dataset.html | 49 ++++++++++++++++-------------- gn2/wqflask/templates/dataset_history.html | 20 ++++++++++++ 3 files changed, 84 insertions(+), 23 deletions(-) create mode 100644 gn2/wqflask/templates/dataset_history.html (limited to 'gn2') diff --git a/gn2/wqflask/edit.py b/gn2/wqflask/edit.py index 0397296e..ebf8449d 100644 --- a/gn2/wqflask/edit.py +++ b/gn2/wqflask/edit.py @@ -154,3 +154,41 @@ def save(): return redirect( f"/datasets/{request.form.get('label')}" ) + + +def __fetch_dataset_git_history__( + git_dir:str , dataset_name: str +) -> Either: + """Fetch the git history of a given dataset.""" + # Age, Commit, Message, Author + dataset_path = Path(git_dir) / "general/datasets/" / dataset_name + format_ = "%cr\ +\ +%h\ +%s%an" + args = [ + "git", "-C", str(dataset_path), "log", + f"--pretty=format:{format_}" + ] + results = __run_cmd__( + args + ) + return results + + +@metadata.route("/history") +def view_history(id_): + """View a datasets history""" + from gn2.utility.tools import get_setting + data = __fetch_dataset_git_history__( + Path(get_setting("DATA_DIR"), "gn-docs"), id_ + ).either( + lambda error: flash(f"{error=}", error), + lambda x: x + ) + return render_template( + "dataset_history.html", + name=request.args.get("name",""), + data=data.decode() + ) diff --git a/gn2/wqflask/templates/dataset.html b/gn2/wqflask/templates/dataset.html index e4ae34ae..1e2c5bc4 100644 --- a/gn2/wqflask/templates/dataset.html +++ b/gn2/wqflask/templates/dataset.html @@ -73,30 +73,27 @@ {% if dataset %} - -
+