diff --git a/website/app/home.py b/website/app/home.py index 78353331..a35f08f3 100644 --- a/website/app/home.py +++ b/website/app/home.py @@ -135,6 +135,28 @@ def result(sid): +@home_blueprint.route("/download/") +def download(sid): + """Download a module result as json""" + sess = HomeModel.get_session(sid) + if "module" in request.args: + if sess: + loc = json.loads(sess.result) + module = request.args.get("module") + if module in loc: + return jsonify(loc[module]), 200, {'Content-Disposition': f'attachment; filename={sess.query_enter.replace(".", "_")}-{module}.json'} + return {"message": "Module not in result", "toast_class": "danger-subtle"}, 400 + else: + for s in SessionModel.sessions: + if s.uuid == sid: + module = request.args.get("module") + if module in s.result: + return jsonify(s.result[module]), 200, {'Content-Disposition': f'attachment; filename={s.query}-{module}.json'} + return {"message": "Module not in result", "toast_class": "danger-subtle"}, 400 + return {"message": "Session not found", 'toast_class': "danger-subtle"}, 404 + return {"message": "Need to pass a module", "toast_class": "warning-subtle"}, 400 + + diff --git a/website/app/templates/query.html b/website/app/templates/query.html index 26441b50..14f2bb6b 100644 --- a/website/app/templates/query.html +++ b/website/app/templates/query.html @@ -25,7 +25,7 @@

Input Attribute:

Modules:

- {%for module in modules%} {{module}}, {%endfor%} + {{", ".join(modules)}}
@@ -43,7 +43,7 @@

Modules:


- @@ -81,102 +81,125 @@
Current History query -