aboutsummaryrefslogtreecommitdiff
path: root/app/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/main')
-rw-r--r--app/main/datasets.py19
-rw-r--r--app/main/routes.py25
2 files changed, 40 insertions, 4 deletions
diff --git a/app/main/datasets.py b/app/main/datasets.py
new file mode 100644
index 0000000..c06b4bf
--- /dev/null
+++ b/app/main/datasets.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+
+import os
+import json
+
+from flask import current_app
+
+
+def load_data_for_chart(name):
+ dataset_dir = os.path.join(
+ current_app.instance_path, current_app.config["DATASET_DIR"]
+ )
+ target_filename = os.path.join(dataset_dir, name + ".json")
+ with open(target_filename, 'rb') as fid:
+ data = json.load(fid)
+ chart_data = [{"value": x} for x in data['series']['V1']['raw']]
+ return {"chart_data": chart_data}
+
+
diff --git a/app/main/routes.py b/app/main/routes.py
index 662e14a..a1d1a63 100644
--- a/app/main/routes.py
+++ b/app/main/routes.py
@@ -1,10 +1,11 @@
# -*- coding: utf-8 -*-
-from flask import render_template
-from flask_login import current_user
+from flask import render_template, flash, url_for, redirect
+from flask_login import current_user, login_required
from app.main import bp
from app.models import Task
+from app.main.datasets import load_data_for_chart
@bp.route("/")
@@ -15,6 +16,22 @@ def index():
tasks = Task.query.filter_by(annotator_id=user_id).all()
tasks_done = [t for t in tasks if t.done]
tasks_todo = [t for t in tasks if not t.done]
- return render_template("index.html", title="Home",
- tasks_done=tasks_done, tasks_todo=tasks_todo)
+ return render_template(
+ "index.html",
+ title="Home",
+ tasks_done=tasks_done,
+ tasks_todo=tasks_todo,
+ )
return render_template("index.html", title="Home")
+
+
+@bp.route("/annotate/<int:task_id>", methods=("GET", "POST"))
+@login_required
+def task(task_id):
+ task = Task.query.filter_by(id=task_id).first()
+ if task is None:
+ flash("No task with id %r has been assigned to you." % task_id)
+ return redirect(url_for("main.index"))
+ data = load_data_for_chart(task.dataset.name)
+ return render_template("annotate/index.html", title="Annotate %s" %
+ task.dataset.name, task=task, data=data)