From bff5795ed10c923f0e26781ed53ff04fd2284923 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Mon, 18 Mar 2019 18:30:21 +0000 Subject: Start work on admin panel --- app/admin/routes.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 app/admin/routes.py (limited to 'app/admin/routes.py') diff --git a/app/admin/routes.py b/app/admin/routes.py new file mode 100644 index 0000000..1150f72 --- /dev/null +++ b/app/admin/routes.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- + +from flask import render_template, flash, redirect, url_for +from flask_login import login_required + +from app import db +from app.admin import bp +from app.admin.decorators import admin_required +from app.admin.forms import AdminAssignTaskForm +from app.models import User, Dataset, Task + + +@bp.route("/assign", methods=("GET", "POST")) +@login_required +@admin_required +def assign(): + form = AdminAssignTaskForm() + if form.validate_on_submit(): + user = User.query.filter_by(username=form.username.data).first() + if user is None: + flash("User does not exist.") + return redirect(url_for("admin.assign")) + dataset = Dataset.query.filter_by(name=form.dataset.data).first() + if dataset is None: + flash("Dataset does not exist.") + return redirect(url_for("admin.assign")) + + task = Task.query.filter_by( + annotator_id=user.id, dataset_id=dataset.id + ) + if not task is None: + flash("Task assignment already exists.") + return redirect(url_for("admin.assign")) + + task = Task(annotator_id=user.id, dataset_id=dataset.id) + db.session.add(task) + db.session.commit() + flash("Task registered successfully.") + tasks = Task.query.all() + return render_template( + "admin/assign.html", title="Assign Task", form=form, tasks=tasks + ) -- cgit v1.2.3