aboutsummaryrefslogtreecommitdiff
path: root/gn2/wqflask/edit.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn2/wqflask/edit.py')
-rw-r--r--gn2/wqflask/edit.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/gn2/wqflask/edit.py b/gn2/wqflask/edit.py
new file mode 100644
index 00000000..8d176608
--- /dev/null
+++ b/gn2/wqflask/edit.py
@@ -0,0 +1,48 @@
+import requests
+
+from pathlib import Path
+
+from flask import (Blueprint,
+ redirect,
+ render_template,
+ request)
+
+from gn2.wqflask.decorators import login_required
+from gn2.utility.tools import GN3_LOCAL_URL
+
+
+metadata = Blueprint("metadata", __name__)
+
+
+@metadata.route("/edit")
+@login_required(pagename="Dataset Metadata Editing")
+def metadata_edit():
+ match request.args.get("type"):
+ case "dcat:Dataset":
+ metadata = requests.get(
+ Path(
+ GN3_LOCAL_URL,
+ "metadata/datasets/",
+ (_name := request.args.get("name"))
+ ).as_posix()
+ ).json()
+ __section = request.args.get("section")
+ return render_template(
+ "metadata/editor.html",
+ name=_name,
+ metadata=metadata,
+ section=__section,
+ edit=metadata.get(__section),
+ )
+
+
+@metadata.route("/save", methods=["POST"])
+@login_required(pagename="Dataset Metadata Editing")
+def save():
+ __content = request.form.get("editor")
+ __summary = request.form.get("summary")
+ __type = request.form.get("type")
+ match __type:
+ case "dcat:Dataset":
+ # XXX: TODO: Method for saving data
+ return redirect(f"/datasets/{request.form.get('label')}")